Sql Django-id null-外键错误
错误: 我相信我的问题是我保存时没有将Sql Django-id null-外键错误,sql,django,python-2.7,django-forms,Sql,Django,Python 2.7,Django Forms,错误: 我相信我的问题是我保存时没有将id从formB传递到formA。请给我一个解决这个问题的方法 以下是我的看法: app_a.desc_id may not be NULL 以下是我的模型: def form(request): if request.method == 'GET': formB = BForm() formA = AForm() return render(request,r'app/form.html',{'fo
id
从formB
传递到formA
。请给我一个解决这个问题的方法
以下是我的看法:
app_a.desc_id may not be NULL
以下是我的模型:
def form(request):
if request.method == 'GET':
formB = BForm()
formA = AForm()
return render(request,r'app/form.html',{'formA':formA,'formB':formB})
elif request.method == 'POST':
formA = AForm(request.POST)
formB = BForm(request.POST)
formB.save()
formA.save()
return HttpResponseRedirect('/log')
这是我的表格:
# Descprition
class B(models.Model):
id = models.AutoField(primary_key=True)
description = models.CharField(max_length=50)
# Title
class A(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField('Name',max_length=20)
desc = models.ForeignKey(B)
您的程序有多个错误,但主要问题是
desc
是class a
中指向class B
的外键,并且上面没有null=True
,这意味着您永远不希望该字段为空。换句话说,A
的每个实例都应该有一个外键desc
如果您只是save()
两个表单,formA
尝试保存A
的实例,而没有desc
字段的值,因此会出现错误。您应该将formB
创建的实例分配给formA
创建的实例:
class BForm(forms.ModelForm):
class Meta:
model = B
fields = ['description']
class AForm(forms.ModelForm):
class Meta:
model = A
fields = ['name']
程序中的其他问题包括从未调用
form.is\u valid()
,具有冗余的id
字段(django将为您创建一个)。我建议您在开始编写代码之前先阅读django教程。找出这样的错误会节省很多时间。您的程序有多个错误,但主要问题是desc
是class a
中的外键,指向class B
,并且上面没有null=True
,这意味着您永远不希望该字段为空。换句话说,A
的每个实例都应该有一个外键desc
如果您只是save()
两个表单,formA
尝试保存A
的实例,而没有desc
字段的值,因此会出现错误。您应该将formB
创建的实例分配给formA
创建的实例:
class BForm(forms.ModelForm):
class Meta:
model = B
fields = ['description']
class AForm(forms.ModelForm):
class Meta:
model = A
fields = ['name']
程序中的其他问题包括从未调用form.is\u valid()
,具有冗余的id
字段(django将为您创建一个)。我建议您在开始编写代码之前先阅读django教程。这会节省很多时间,比如找出这样的错误