2014-04-01 45 views
0

我正在尝试迭代ChoiceField并在我的模板中单独显示单选按钮。但是,当我使用通过for循环运行字段的标准方法时,我的非属性将呈现任何内容。Django RadioSelect Widget没有正确迭代

这里是我的形式

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,所以这应该得到支持。还没有能够从文档/其他答案中解决这个问题,我不确定会对此产生什么影响。

编辑:

默认RadioSelect部件是由floppyforms模块,这似乎并不在这种方式迭代(这将使意义)覆盖。

+0

我刚刚意识到我们正在使用替代默认小部件的floppyforms,这似乎是一种可能的行为嫌疑。 –

回答

0

我工作时没有使用软盘,并且在我的项目中正确显示了相同的代码。建议您重点关注RadioSelect的重写,也许您可​​以使用widget=forms.RadioSelect(renderer=CustomRenderer)来实现相同的功能,并保留默认的RadioSelect Widget。