我正在尝试在我的NoteForm中填充字段'owner'。我在文档中读到我需要使用Admin。但是我仍然会收到此错误:note_note.owner_id可能不是NULL。需要帮忙。 码: forms.py:
class NoteForm(forms.ModelForm):
class Meta:
model = Note
fields = ('title','body')
models.py:
class Note(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
cr_date = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, blank=False)
class NoteAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
form.owner = request.user
form.save()
views.py:
def create(request):
if request.POST:
form = NoteForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponceRedirect('/notes/all')
else:
form = NoteForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('create_note.html', args)
我还尝试在admin.py中编写NoteAdmin类,以防万一。同样的错误。我做错了什么?我只是关注文档。
答案 0 :(得分:0)
您尝试保存Note
没有owner
字段,错误说明了。试试:
if form.is_valid():
obj = form.save(commit=False)
obj.owner = request.user
obj.save()
另一种方法是,如果您可以在没有所有者的情况下编写数据,则为null=True
字段设置owner
。