我正在尝试迭代ChoiceField并在我的模板中单独显示单选按钮。但是当我使用通过for循环运行字段的标准方法时,我的非属性呈现任何东西。
以下是我的表单
的摘录class ResponseForm(forms.Form):
CHOICES = (('1', 'First',), ('2', 'Second',))
suggestions = forms.ChoiceField(required=True, widget=forms.RadioSelect(), choices=CHOICES)
模板中的片段
{% for radio in response_form.suggestions %}
{{ radio.id_for_label }} {{ radio.choice_label }} {{ radio.tag }}
{% endfor %}
这是无线电变量在for循环期间在调试器中的显示方式。
http://i.stack.imgur.com/lyCE6.png
我们正在运行Django 1.5,所以应该支持这个。 Haven能够从文档/其他答案中解决这个问题,而且我不确定会干扰这个问题。
修改
默认的RadioSelect小部件被floppyforms模块覆盖,它似乎不会以这种方式迭代(这是有意义的)。
答案 0 :(得分:0)
我没有使用floppyform工作,并且在我的项目中正确呈现了相同的代码。建议你专注于覆盖RadioSelect
,也许你可以使用widget=forms.RadioSelect(renderer=CustomRenderer)
来实现相同的功能,并保留默认的RadioSelect Widget。