2015-06-15 2 views
1

Я хотел бы использовать kwarg для установки начального значения поля формы. Ранее я делал что-то похожее на:Flask-wtf: Использование kwarg для установки начального значения для поля

from wtforms import Form 
from wtforms.fields import StringField 

class BasicForm(Form): 
    inputField = StringField("Name") 

basic_form_kwargs = {"inputField" : "Example"} 
basic_form = BasicForm(**basic_form_kwargs) 
print basic_form.inputField 
#<input id="inputField" name="inputField" type="text" value="Example"> 

Этот код работает так, как я ожидал. Атрибут value имеет значение «Пример». Однако, когда я начинаю использовать FormFields, он не работает, как я ожидаю.

from wtforms import Form 
from wtforms.fields import StringField 

class ChildForm(Form): 
    inputField = StringField("Name") 
class ParentForm(Form): 
    childWrapper = FormField(ChildForm) 

complex_form_kwargs = {"childWrapper-inputField" : "Example"} 
complex_form = ParentForm(**complex_form_kwargs) 
print complex_form.childWrapper.inputField 
#<input id="childWrapper-inputField" name="childWrapper-inputField" type="text" value=""> 

Какой должен пройти kwarg, чтобы я мог установить значение inputField при использовании FormFields?

ответ

1

Так же, как вы прошли Dict в форме родительского уровня, вам необходимо пройти Dict в виде ребенка, как это:

kwargs = {"childWrapper": {"inputFIeld": "Example2"}} 
form = ParentForm(**kwargs) 
Смежные вопросы