Python 在django中使用createview时,NOT NULL约束失败错误
我正在尝试使用createview在模型中创建一个新条目。模型场地与Adress模型处于一对一关系,我无法让它升级该模型。我尝试使用自定义表单,但总是出现以下错误:Python 在django中使用createview时,NOT NULL约束失败错误,python,django,model,relation,Python,Django,Model,Relation,我正在尝试使用createview在模型中创建一个新条目。模型场地与Adress模型处于一对一关系,我无法让它升级该模型。我尝试使用自定义表单,但总是出现以下错误: IntegrityError at /evcreate/ NOT NULL constraint failed: kammem_person.padress_id form.py: class AdressForm(ModelForm): street=CharField(max_length=100) snu
IntegrityError at /evcreate/
NOT NULL constraint failed: kammem_person.padress_id
form.py:
class AdressForm(ModelForm):
street=CharField(max_length=100)
snumb=CharField(max_length=15)
town=CharField(max_length=100)
postn=CharField(max_length=5,validators=[postnvali])
class Meta:
model=Person
exclude=['padress']
视图:
models.py
class Person(Model):
fname=CharField(default="missing",max_length=100)
lname=CharField(default="missing",max_length=100)
mobil=PhoneField(default='9999999999')
mail=EmailField(default='contact@gmail.com')
padress=OneToOneField(Adress,on_delete=CASCADE,primary_key=True)
def __str__(self):
return self.fname
class Meta:
ordering=('fname','lname')
class Venue(Model):
vname=CharField(default="",max_length=100)
vamil=EmailField(default='contact@gmail.com')
vpage=CharField(default='homepage',max_length=100)
vadress=OneToOneField(Adress,on_delete=CASCADE,,primary_key=True)
def __str__(self):
return 'Venue: ' + self.vname
url.py
path('evcreate/',EvCreate.as_view(),name='evcreate'),
我真的在寻找答案,但没有成功。有什么线索吗?您缺少了您设置为主键的padress 在AdressForm中,您已排除了padress,Django creates视图会自动创建对象(如果窗体有效) 试试这样的
def form_valid(self,form):
form.padress = # Adress object
form.save()
# rest
form.vadress=
你是想写form.instance.padress=
(在你的form\u类EvCreate
的有效方法中)吗?此外,鉴于姓名地址表是一种使人成为实例的形式,因此其误导性很大。姓名地址表是误导性的,没错。是的,我的意思是form.instance.padress=对不起,但它仍然给出相同的错误
def form_valid(self,form):
form.padress = # Adress object
form.save()
# rest