2014-04-01 43 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。