我有一个Django形式的ModelChoiceField
。功能正常,但当我循环遍历模板中的所有选项时,我需要有关对象的更多信息,而不仅仅是Model.__str__()
的值。
我试过了
{% for radio in form.field %}
<tr>
<td class="text-center">{{ radio.tag }}</td>
<td>{{ radio.choice_label }}</td>
</tr>
{% endfor %}
但我无法从对象中获取更多信息(例如radio.name
,radio.age
,radio.country
)。
答案 0 :(得分:1)
来自文档:
将调用模型的 str (Python 2上的 unicode )方法,以生成对象的字符串表示形式,以便在字段的选择中使用;提供自定义表示,子类ModelChoiceField和覆盖label_from_instance。此方法将接收模型对象,并应返回适合表示它的字符串。
来自文档的一个例子:
from django.forms import ModelChoiceField
class MyModelChoiceField(ModelChoiceField):
def label_from_instance(self, obj):
return "My Object #%i" % obj.id