基于类的视图如何在模型中处理OneToOneField

时间:2016-10-07 18:11:53

标签: django django-templates django-views

我有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代替地址位置或排序。

或许,这些类型的观点在处理个人层面的形式方面具有优势。

0 个答案:

没有答案