如何内联形成一个深层嵌套的模型?

时间:2017-10-13 19:23:55

标签: django forms model inline

简单概述。

我有一个模型,它具有另一个模型的外键,其中该模型具有外键等等。

如何扩展表单,使其处于单一视图中?

目前,当我使用CreateView时,它会将外键字段显示为下拉列表。我想用可以填写的实际表格替换下拉列表。

我将举例说明模型:

class Address(models.Model):
    address_0 = models.CharField("address", max_length=64)
    address_1 = models.CharField("address cont'd", max_length=64, blank=True)
    city = models.CharField("city", max_length=64, blank=True)
    state = USStateField() # this is selection field # django_localflavor_us.models
    zip_code = USZipCodeField() # django_localflavor_us.models

class ContactInfo(models.Model):
    name = models.CharField(max_length=50)
    address = models.ForeignKey(Address, null=True, blank=True)
    phone = models.CharField(max_length=50, blank=True)
    fax = models.CharField(max_length=50, blank=True)
    email = models.EmailField(blank=True)

class Generator(models.Model):
    contact = models.ForeignKey(ContactInfo, related_name='contact')
    mailing_address = models.ForeignKey(
        Address, null=True, blank=True, related_name='mailing_address')
    code = models.CharField(max_length=50, blank=True)

我希望用户创建一个生成器表单。 我得到的页面是一堆下拉字段,代码是唯一可填写的字段。

我希望能够在创建新的生成器表单时填写所有内容。

问题

  • 如何将所有模型的表单注入GeneratorForm

  • 我将如何验证表格并确保它们分别与模型一起妥善保存。

  • 处理未知数量的外键有什么好办法?也许模型中有更多的外键。

  • 当有多个外键时,内联形成外键字段

(几乎只是想将网络扩展到所有模型并将它们移到最基本的字段,以便它们可以在根模型中进行编辑)

注释

我尝试使用inlineformsets但是我不确定如何处理需要ContactInfo的{​​{1}}。

我不确定它是否是inlineformset的嵌套,我不知道如何设置它。

0 个答案:

没有答案