我有一个 ModelForm,其中包含一个使用 RadioSelect 小部件的 ModelChoiceField。
class MyAForm(forms.ModelForm):
one_property = models.ModelChoiceField(
widget=forms.RadioSelect,
queryset=MyBModel.objects.filter(visible=True),
empty_label=None)
class Meta:
model = MyAModel
MyBModel 上有一些我想在单选按钮旁边显示的属性。我会覆盖label_from_instance
ModelChoiceField 的子类,但这不允许我做我想做的事,因为我希望单选按钮出现在每个选择项都有一行的表中。
所以在我的模板中的某个地方我想要类似...
{% for field in form.visible_fields %}
{% if field.name == "one_property" %}
<table>
{% for choice in field.choices %}
<tr>
<td><input value="{{choice.id}}" type="radio" name="one_property" />{{choice.description}}</td>
<td><img src="{{choice.img_url}}" /></td>
</tr>
{% endfor %}
</table>
{% endif %}
{% endfor %}
不幸的是 field.choices 返回对象的 id 和标签的元组,而不是查询集中的实例。
有没有一种简单的方法来获取要在模板中使用的 ModelChoiceField 的选择实例?