2
我有一个ModelForm
,它呈现select
字段,因为它指向ForeignKey
。表单呈现时,将显示基于ForeignKey
的__unicode__
定义的选项。Django选择字段 - 更改显示的内容
例如,我在表单中有一个select
字段,用于从Contact
模型中选择一个联系人。该Contact
模型有:
def __unicode__(self):
return self.first_name
因此,我在我的select
领域的联系人列表只显示名字。
我知道我只能更改__unicode__
定义,但我想知道如何根据select
字段的显示位置来改变select
选项中显示的内容。换句话说,在一些表格,我需要证明的东西,如:
{{ contact.first_name}} -- {{ contact.phone_number }}
,并在其他方面我只想表明:
{{ contact.first_name }}
如何去调整ModelForm
这样即特定字段,select
字段指向ForeignKey
模型Contact
显示联系人的全名?
这是有希望的 - 但是这将如何适用于'ModelForm',其中表单是基于我创建的'models.Model'构建的。因此,而不是'类MyForm(forms.Form)'我正在使用'类MyForm(ModelForm)'。从那里,我定义了要使用的“模型”以及该模型中要使用的哪些字段。我不太清楚如何将新的'YourNewChoiceField'分配给ModelForm(如果有意义的话) – Garfonzo
我可能已经找到了我的答案[here](https://docs.djangoproject.com/en/1.9/) topic/forms/modelforms /#overriding-the-default-fields),但它只能用于1.9,而我使用1.8 – Garfonzo
'label_from_instance'也可在[Django 1.8]中使用(https://docs.djangoproject .COM/EN/1.8/REF /表格/场/#modelchoicefield)。至于你的第一个问题,你简单地重新定义了你的表单中的字段,我更新了答案。 –