2014-06-20 60 views
1

我正在使用flask-sqlalchemy和flask-wtf。基本上我想把我的「row.form_field」查詢產生的字符串放到我的wtf form類調用中。有關我如何解決這個問題的任何想法?插入變量並循環遍歷python類調用

from forms import form_list 
from models import form_value 

form = form_list 

values = form_value.query.filter_by(form_entry_id = id) 
for row in values: 
    print row.form_field, row.value #This works. 
    form.row.form_field.data = row.value #This does not! 
    # form.???how to insert "row.form_field" here???.data = row.value 

回答

1

您可以使用getattr

getattr(form, row.form_field).data = row.value 

但更容易,你可以簡單地將數據傳遞到您的實例WTForms類:

data = {row.form_field: row.value for row in values} 
form_list = FormList(**data) 
+0

天才!你的第一個回答是我的星期五!對於你的第二個答案,我不熟悉FormList。有這方面的文件嗎? – spitz

+0

@ user1181157 - 'FormList'就是我認爲*你有 - 從'wtforms.Form'(例如'FormListList(Form)')繼承的類。如果'form_list'是那個類,那麼你只需要使用'instance_of_form = form_list(** data)'。 –

+0

你的第一個方法使用'getattr(form,row.form_field.name).data = row.value'。對於第二種方法,'data = {row.form_field.name:row.value for row in values}'似乎抓取數據,但是'instance_of_form = form_list(** data)'似乎並沒有傳遞它。模板中的所有字段都是空的。 – spitz