Вложенные формы Джанго для ForeignKey модели

Обновить

April 2019

Просмотры

56 раз

1

У меня есть две модели, которые выглядят как-то

class Address(models.Model):
    line1 = models.CharField(max_length=128, help_text="Address Line 1")
    city = models.CharField(max_length=128)
    state = USStateField()
    zipcode = USZipCodeField()

class Company(models.Model):
    name = models.CharField(max_length=100)
    address = models.ForeignKey('Address', on_delete=models.PROTECT)

И я хотел бы, чтобы создать форму, которая выглядит, как показано ниже, хотя я понятия не имею, как сохранить адрес изнутри зрения без жесткого кодирования каждого отдельного поля изнутри зрения.

<input type=text id="name">Name</input>
<input type=text id="line1">Address Line1</input>
<input type=text id="city">City</input>
<input type=text id="state">State</input>
<input type=text id="zipcode">Zipcode</input>

Ближе всего я придумал что-то вроде

class CustomForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CustomForm, self).__init__(*args, **kwargs)
        address_fields = forms.fields_for_model(Address, exclude=())
        self.fields.update(address_fields)

    class Meta:
        model = Company
        exclude = ['address']  

Есть известная / наилучшей практики способ достичь этого?

0 ответы