外键字段的外键未显示-Django

时间:2020-08-07 13:33:14

标签: python django django-models django-forms django-views

我想创建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 :(得分:0)

您的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)

尝试一下,让我知道它是否有效。