/notes/add NOT NULL 约束处的 IntegrityError 失败:notes_note.created
Posted
技术标签:
【中文标题】/notes/add NOT NULL 约束处的 IntegrityError 失败:notes_note.created【英文标题】:IntegrityError at /notes/add NOT NULL constraint failed: notes_note.created 【发布时间】:2020-08-01 21:15:16 【问题描述】:当我在 django2 中添加函数时遇到问题,无法添加新帖子而这段代码
/notes/add 处的完整性错误 NOT NULL 约束失败: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 )
【问题讨论】:
IntegrityError at /notes/add NOT NULL 约束失败:notes_note.created idownvotedbecau.se/imageofcode 没有dv,但请复制问题中的代码,请勿发布代码图像。 @memeal:可以分享一下模型吗? 【参考方案1】:您没有为 Note
模型中的 created
字段设置默认值。结果,没有填写任何值,因此出现错误:您可以将auto_now_add=…
parameter [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)
【讨论】:
非常感谢您解决问题以上是关于/notes/add NOT NULL 约束处的 IntegrityError 失败:notes_note.created的主要内容,如果未能解决你的问题,请参考以下文章