2016-02-10 35 views
0

我正在使用Flask,SQLAlchemy和WTForms開發Web應用程序。我希望通過我的數據庫查詢,在SelectField中獲得我的選擇。從wtforms和flask-sqlalchemy中的DataBase查詢中獲取選擇

更多細節。

my_query = my_table.query.with_entities(My_Entities).all() 

結果

[(U'1' ,),(U'2' ,),(U'3' ,)]

我類

class MyForm(Form): 
    My_Var = SelectField(choices=RIGHT_HERE) 

有什麼辦法嗎?

回答

2

在這種情況下,你可以做的是使用WTForms中的擴展。你要做的就是導入QuerySelectField,您需要:

from wtforms.ext.sqlalchemy.fields import QuerySelectField

然後創建將查詢數據庫,並返回你所需要的東西的功能:

def skill_level_choices():  
    return db.session.query(SkillLevel).all() 

之後,你有查詢對象你可以通過使用query_factory參數

skill_level = QuerySelectField(u'Skill level',  
           validators=[Required()], 
           query_factory=skill_level_choices) 
+0

將它放入QuerySelectField這是在forms.py中嗎? – roy

+0

這是正確的。 – m1yag1

+0

@ m1yag1:所以代碼需要包含在'類MyForm(Form)'中?謝謝。 – Samoth