没有显示外键字段的外键-Django



我想创建form,用于创建具有外键Address的新Person对象(所有这些模型只是为了练习(。问题是,我在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)

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

试试这个,让我知道它是否有效。

最新更新