Django RadioSelect Widget没有正确迭代

时间:2014-04-01 10:37:27

标签: python django django-forms

我正在尝试迭代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模块覆盖,它似乎不会以这种方式迭代(这是有意义的)。

1 个答案:

答案 0 :(得分:0)

我没有使用floppyform工作,并且在我的项目中正确呈现了相同的代码。建议你专注于覆盖RadioSelect,也许你可以使用widget=forms.RadioSelect(renderer=CustomRenderer)来实现相同的功能,并保留默认的RadioSelect Widget。