I'm developing a web app using Flask, SQLAlchemy and WTForms. I would like to get my choices in a SelectField from a query through my DB.
With more details.
my_query = my_table.query.with_entities(My_Entities).all()
Result
[(u'1',), (u'2',), (u'3',)]
My class
class MyForm(Form):
My_Var = SelectField(choices=RIGHT_HERE)
Is there any way ?
Solution:
I had quite simmilar problem with
wtforms
andpeewee
, and here is my workaroundExplanation:
We modified original
FlaskForm
, so that it executs database query each time when it is being created.So
MyForm
data choices stays up to date.In this situation what you can do is use the extensions that are in WTForms. What you do is import the
QuerySelectField
that you need:from wtforms.ext.sqlalchemy.fields import QuerySelectField
Then you create a function that will query the database and return the stuff you need:
After you have the query object you can place it into your
QuerySelectField
by using thequery_factory
parameterPopulate QuerySelectField with values from Databaase