我可能会说出来,因为我在这里看不到问题,而且我确信它有点微不足道。
我有一个模型表单,他的模型是Profile(Profile是用户在网站上通过多种形式,正常工作)。在这种特殊形式中,我只使用一个字段。当我尝试保存它时,它会中断:列中的空值" user_id"违反非空约束。用户是Profile模型上的外键。
我有类似的表单/视图,只处理Profile模型中的一个字段,保存工作正常。我比较代码而我无法看到差异。正如我所说,我可能会烧掉一点。
这是我的表格:
class CompleteRegistration(forms.ModelForm):
class Meta:
model = Profile
fields = ('resume',)
这是观点:
def complete_registration(request):
if request.method == "POST":
form = CompleteRegistration(request.POST)
if form.is_valid():
form.save()
return redirect(request.GET.get('next', ''))
else:
form = CompleteRegistration()
context = {
'form': form
}
return render_to_response('accounts/complete_registration.html', context, RequestContext(request))
它应该很简单,但我显然遗漏了一些东西。 Profile模型还有一个uuid字段。它存在于失败的行中,这让我更加困惑。为什么有一个uuid而没有用户?有任何想法吗?可能是因为视图中的User实例实际上是SimpleLazyObject?
答案 0 :(得分:1)
表单中缺少Profile
个实例。您应该将其作为instance
参数传递,否则表单会尝试创建一个新实例(它没有user_id
)。