【发布时间】:2011-10-08 22:42:45
【问题描述】:
我使用ModelForm。其中一个字段是:
repertoire = models.ForeignKey(Repertoire)
我需要更改它的显示类型。我不想在显示中使用 __str__(或 Python 2 中的 __unicode__),而是想显示曲目的名称和日期。
如何使用ModelForm 做到这一点?
【问题讨论】:
标签: python django django-forms
我使用ModelForm。其中一个字段是:
repertoire = models.ForeignKey(Repertoire)
我需要更改它的显示类型。我不想在显示中使用 __str__(或 Python 2 中的 __unicode__),而是想显示曲目的名称和日期。
如何使用ModelForm 做到这一点?
【问题讨论】:
标签: python django django-forms
子类ModelChoiceField 并覆盖label_from_instance 以返回曲目名称和日期。然后使用 ModelForm 中的新字段。
from django import forms
class RepertoireModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "%s - %s" % (obj.name, obj.date)
class MyModelForm(forms.ModelForm):
repertoire = RepertoireModelChoiceField(queryset=Repertoire.objects.all())
【讨论】: