inuyashafff
inuyashafff

Reputation: 3

null value in column "user_id" violates not-null constraint

I am working on a RSVP project based on Django. When I want to make a Event model and connect it with every user. It always has this error! Event just has two fields: user and name.

views.py:

def create_event(request):
    if request.method=='POST':
        form = CreateEventForm(data=request.POST)                                                                                                                                                                         
        if form.is_valid():
        form.save()
        return redirect('http://vcm-2971.vm.duke.edu:8080/rsvp/profile')
        else:
            form= CreateEventForm()
        args= {'form':form}
            return render(request, 'rsvp/create_event.html',args)
    else:
        form= CreateEventForm()
    args= {'form':form}
        return render(request, 'rsvp/create_event.html',args)

models.py:

class Event(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
    name = models.CharField(max_length=100,default='')

forms.py:

class CreateEventForm(ModelForm):
    #name = forms.CharField(max_length=100,required = True)                                                                                                                                                 

    class Meta:
        model = Event
        fields=(
            'name',
        )

Upvotes: 0

Views: 1007

Answers (1)

Exprator
Exprator

Reputation: 27533

def create_event(request):
    if request.method=='POST':
        form = CreateEventForm(data=request.POST)                                                                                                                                                                         
        if form.is_valid():
        form = form.save(commit=False)
        form.user = request.user
        form.save()
        return redirect('http://vcm-2971.vm.duke.edu:8080/rsvp/profile')
        else:
            form= CreateEventForm()
        args= {'form':form}
            return render(request, 'rsvp/create_event.html',args)
    else:
        form= CreateEventForm()
    args= {'form':form}
        return render(request, 'rsvp/create_event.html',args)

you need to be logged in to use this form or you need to pass a custom User instance to the user field of the Model

Upvotes: 1

Related Questions