4

ChoiceFieldを反復処理し、値とラベルから独自の HTML を構築する際に問題があります。「widget」パラメータをSelectとして指定すると、フィールドは反復できなくなります。

ただし、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)

4

1 に答える 1

5

これはあなたが探しているものでしょうか?

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

また、空白はあなたの友達です。:)

于 2013-04-20T07:26:45.280 に答える