Внешний ключ полей внешнего ключа не отображается - Django - PullRequest
0 голосов
/ 07 августа 2020

Я хочу создать form для создания нового объекта Person с внешним ключом Address (все эти модели предназначены только для практики). Проблема в том, что я не вижу ни метки адреса, ни текстового поля для адреса в шаблоне PersonCreateForm. Вот мои коды:

person_app/models.py:

class Person(models.Model):
    name = models.CharField(max_length=20)
    address = models.ForeignKey('address_app.Address', on_delete=models.CASCADE)

address_app/models.py:

class Address(models.Model):
    country = models.CharField(max_length=30)

person_app/forms.py:

class CreatePersonForm(ModelForm):
    def save(self, commit=False):
        person= super(CreatePersonForm, self).save(commit=False)
        Person.objects.create(
                name = person.name,
                address = person.address.country)

person.html:

<h1>{{ form.name }}</h1> (name is visible)
<h1>{{ form.address }}</h1> (but address not)

1 Ответ

0 голосов
/ 07 августа 2020

Ваша форма CreatePersonForm должна быть примерно такой -

class CreatePersonForm(ModelForm):

    class Meta:
        model = Person
        fields = ("name", "address")

    def save(self, commit=False):
        person= super(CreatePersonForm, self).save(commit=False)
        Person.objects.create(
                name = person.name,
                address = person.address.country)

попробуйте это и дайте мне знать, работает ли это.

...