flask wtforms selectfield选项不更新

时间:2016-04-09 09:30:42

标签: flask flask-wtforms

class ArticleForm(Form):
    type = SelectField('type', choices=[(h.id, h.name) for h in ArticleType.query.all()], coerce=int)

下面是我在视图中使用ArticleForm的方式

@admin.route('/article/add',methods=['get','post'])
def article_create():
    article_form = ArticleForm()

我的问题是,每次访问/ article / add

时,selectField都不会读取数据库

如果我在ArticleType中添加新类型,则选择selectField将不会更新选择,直到我重新启动服务器。

但如果我使用如下

@admin.route('/article/add',methods=['get','post'])
def article_create():
    article_form = ArticleForm()
    article_form.type.choices = [(h.id, h.name) for h in ArticleType.query.all()]

articleType得到更新.. 这有什么问题...

1 个答案:

答案 0 :(得分:0)

当我遇到这个问题时,我通过填写表格的__init__方法

中的选项来解决它
class ArticleForm(Form):
    type = SelectField()

    def __init__(self, *args, **kwargs):
        form = super(ArticleForm, self).__init__(*args, **kwargs)
        form.type.choices = [(h.id, h.name) for h in ArticleType.query.all()]
        return form