为了账号安全,请及时绑定邮箱和手机立即绑定

/notes/add NOT NULL 约束处​​出现 IntegrityError 失败:

/notes/add NOT NULL 约束处​​出现 IntegrityError 失败:

梦里花落0921 2024-01-11 16:13:30
当我在 django2 中添加功能时遇到问题无法添加新帖子并且这段代码/notes/add NOT NULL 约束处出现 IntegrityError 失败:notes_note.created的观点    def note_add(request):    # form = NoteForm()    if request.method == 'POST':        form = NoteForm(request.POST)        if form.is_valid():            new_form = form.save(commit=False)            new_form.user = request.user            new_form.save()            return redirect('/notes')    else:        form = NoteForm()    context={        "form":form,    }    return render(request, 'add.html', context )
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

您没有为模型created中的字段设置默认值Note。因此,没有填写任何值,因此出现错误:您可以将参数auto_now_add=…[Django-doc]设置为True自动将其设置为创建对象时的时间戳:

class Note(models.Model):

    # …

    created = models.DateTimeField(auto_now_add=True)

通常最好改变.instance表格中的包裹,让表格成为.save()模型。如果您(稍后)向模型添加多对多关系Note,这尤其有用,因为表单以更透明的方式处理此逻辑:


def note_add(request):

    if request.method == 'POST':

        form = NoteForm(request.POST)

        if form.is_valid():

            form.instance.user = request.user

            form.save()

            return redirect('/notes')

    else:

        form = NoteForm()

    context={

        'form': form,

    }

    return render(request, 'add.html', context)


查看完整回答
反对 回复 2024-01-11
  • 1 回答
  • 0 关注
  • 38 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信