我的问题与此问题非常相似:Django: Populate user ID when saving a model
不幸的是我不太明白他们的答案。
当用户登录时,我希望他们能够提交链接,并且我有一个我似乎无法填充的user_id外键。
def submit(request):
if request.method == 'POST':
form = AddLink(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
form = AddLink()
return render_to_response('links/submit.html', {'form': form})
每次我提交表单时都会提到:
null value in column "user_id" violates not-null constraint
我理解但我不知道如何将user_id添加到我的表单对象。如何访问当前登录用户的ID并将其与表单数据一起提交?
答案 0 :(得分:11)
您可以这样做:
if form.is_valid():
link = form.save(commit=False)
link.user = request.user
link.save()
commit = False允许您在将结果对象实际保存到数据库之前修改它。
答案 1 :(得分:6)
将此if form.is_valid()
- 块替换为:
if form.is_valid():
form.instance.user = request.user
form.save()
return redirect('home')