2014-06-06 5 views
2

동적 필드가있는 양식을 작성하려고합니다 (추가 필드를 추가하려면 더하기를 클릭하십시오).Flask + WTForms - FormList에 필드 표시

forms.py :

class ActionForm(Form): 
    key = SelectField("Type: ", coerce=int, choices=[(0, "Option 1"), (1, "Option 2"), (2, "Opeion 3")], default=0) 
    value = StringField('Value: ') 


class EditForm(Form): 
    content = StringField("Content: ") 
    actions = FieldList(FormField(ActionForm)) 
    status = RadioField("Status: ", coerce=int, choices=[(0, "Inactive"), (1, "Active")], default=1) 
    submit = SubmitField("Submit") 

보기 템플릿 (ActionForm의에서 필드를 렌더링하지 않음) :

<form method="POST"> 
{{ form.csrf_token }} 
{{ form.actions.label }} 
<div class="form-group input-group"> 
    {% for action in form.actions %} 
     {% for field in action %} 
      {{ field() }} 
     {% endfor %} 
    {% endfor %} 
</div> 
{{ form.status.label }}{{ form.status }} 
{{ form.submit() }} 
</form> 

문제 : 내 양식에

, I ActionForm 필드가 나타나는 빈 곳을 확인하십시오.

즉, SelectField() 및 StringField()를 표시하기 위해 form.actions을 반복 할 수 없습니다.

내가 뭘 잘못하고 있니?

+0

은? –

+0

@ AndrewKloos : 내보기 기능입니다. 폼을 표시 할 수 있습니다 (예를 들어 상태가 표시됨). 그러나 FieldList 필드는 표시되지 않습니다. 저는 기본적으로이 부트 스트랩 다중 필드 요소를 지원하려고합니다 : http://bootsnipp.com/snippets/featured/multiple-fields. – okoboko

답변

1

FieldListmin_entries 키워드 인수를 취하는 - 당신이 그것을 설정하면, 적어도 n 항목이 있는지 확인합니다 : 당신이 렌더링() 명령을 할

class EditForm(Form): 
    content = StringField("Content: ") 
    actions = FieldList(FormField(ActionForm), min_entries=1)