2013-04-20 4 views
4

ChoiceField을 반복하는 데 문제가 있으며 값과 레이블에서 내 자신의 HTML을 만듭니다. "widget"매개 변수를 으로 지정할 때을 선택하면 해당 필드는 더 이상 반복 할 수 없습니다.위젯으로 선택을 사용하여 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> 

내가 잘못 뭐하는 거지?

(파이썬 2.7.3 장고 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