我有2个型号:
class CompanyInfo(models.Model):
name = models.CharField(_('name'), max_length=100)
address = models.OneToOneField(Location)
class Location(models.Model):
address_1 = models.CharField(_("address"), max_length=128)
address_2 = models.CharField(_("address cont'd"), max_length=128, blank=True)
city = models.CharField(_("city"), max_length=64, default="")
state = USStateField(_("state"), default="")
zip_code = models.CharField(_("zip code"), max_length=5, default="")
当我使用CBV并打印出模板上的表格时。它显示名称,输入字段和地址作为多项选择。
无论如何,我可以将多项选择转换为多个输入字段,将状态转换为多项选择。
我认为我可以有2个表单,但是如何在表单中包含表单?
Edit1:此外,不得更改模型和字段的方式。对于这个例子,确定的位置字段可以在公司信息中,但我只想知道如何将所有这些字段包含在同一模型中是有意义的。
Edit2:所以,我唯一能想到的就是使用基于函数的视图,一次只处理2个表单。
EDIT3: 以下是我的表格:
class CompanyInfoForm(ModelForm):
class Meta:
model = CompanyInfo
exclude = ['address']
class LocationForm(ModelForm):
class Meta:
model = Location
fields = '__all__'
然后基于类的观点:
class CompanyInfoCreate(CreateView):
model = CompanyInfo
form_class = CompanyInfoForm
class LocationCreate(CreateView): model =位置 form_class = LocationForm
但是,这非常有用,因为这些表格一次只能完成1个。我希望LocationView代替地址位置或排序。
或许,这些类型的观点在处理个人层面的形式方面具有优势。