2013-04-20 50 views
4

我在迭代ChoiceField時遇到問題,並從值和標籤構建自己的HTML。當指定「widget」參數爲選擇時,該字段不再可迭代。無法使用Select作爲小部件來迭代ChoiceField

但是,它工作正常,如果我指定它爲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)

回答

5

這是你要找的嗎?

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

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

+0

對我來說夠好。 – Trollbane 2013-04-20 08:21:24