【问题标题】:null value in column "user_id" violates not-null constraint“user_id”列中的空值违反非空约束
【发布时间】:2018-02-09 04:32:39
【问题描述】:

我正在开发一个基于 Django 的 RSVP 项目。当我想制作一个 Event 模型并将其与每个用户连接时。一直有这个错误!事件只有两个字段:username

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',
        )

【问题讨论】:

  • 你没有在模型中保存用户数据

标签: python django


【解决方案1】:
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)

您需要登录才能使用此表单,或者您需要将自定义User instance 传递给Model 的用户字段

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2012-11-01
    • 2016-01-18
    • 2020-11-28
    相关资源
    最近更新 更多