2014-06-06 50 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> 

問題:

在我的形式,我只是看到ActionForm字段應該出現的空白處。

換句話說,我不能遍歷form.actions(顯示SelectField()和StringField())。

我在做什麼錯?

+0

你在哪裏有渲染()命令? –

+0

@AndrewKloos:這是在我看來的功能。我能夠獲取要顯示的表單(例如,狀態出現),但是FieldList控件沒有。我基本上只是試圖支持這個Bootstrap Multiple Field元素:http://bootsnipp.com/snippets/featured/multiple-fields。 – okoboko

回答

1

FieldList需要min_entries關鍵字參數 - 如果你設置它,它會確保至少有n條目:

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