无法使用Select作为窗口小部件迭代ChoiceField

时间:2013-04-20 06:23:39

标签: django choicefield

我遇到了迭代 ChoiceField 并从值和标签构建自己的HTML的问题。将“widget”参数指定为选择时,该字段不再可迭代。

但是,如果我将其指定为 RadioSelect

,它可以正常工作

表格:

class MyFormCreate( Form ) :
    QUOTES = (
            (34, "Hi, Patrick. Wait, I'M PATRICK!"),
            (21, "I like pie."), 
            (76, "No, this is Patrick!"),
    )
    patrick = ChoiceField(choices = QUOTES, widget = Select)

模板:

<select name="{{form.patrick.name}}">
    {% for option in form.patrick %}
    <option value="{{option.choice_value}}">{{option.choice_label}}</option>
    {% endfor %}
</select>

我做错了什么?

(Python 2.7.3和Django 1.4.5)

1 个答案:

答案 0 :(得分:5)

这会是你想要的吗?

<select name="{{ form.patrick.name }}">
    {% for value, text in form.patrick.field.choices %}
        <option value="{{ value }}">{{ text }}</option>
    {% endfor %}
</select>

此外,白色空间是你的朋友。 :)