django ModelChoiceField:如何通过模板中的实例进行操作?

时间:2014-02-26 02:31:18

标签: django django-forms django-templates

我试图通过显示实例的几个字段来访问ModelChoiceField的实例,以便在模板中以我想要的方式呈现它们。

class MyForm(forms.Form):
    mychoices = forms.ModelChoiceField(
        queryset=ObjectA.objects.all(), widget=forms.RadioSelect(), empty_label=None
    )

这不起作用:

{% for choice in form.mychoices %}
     {{ choice.pk}}
{% endfor %}

我也尝试使用查询集,但它不呈现任何内容

{% for choice in form.mychoices.queryset %}
     {{ choice.pk}}
{% endfor %}

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:13)

{% for choice in form.mychoices.field.queryset %}
    {{ choice.pk }}
{% endfor %}

注意额外的.field。第一次遇到它时有点奇怪,但它会给你你想要的东西。您还可以访问该对象的choices属性,而不是直接访问queryset,但是您需要访问该选项的第一个元素以获取实例的PK,如下所示:

{% for choice in form.mychoices.field.choices %}
    {{ choice.0 }}
{% endfor %}