我试图通过显示实例的几个字段来访问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 %}
有什么想法吗? 感谢
答案 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 %}