【问题标题】:flask wtforms selectfield choices not update烧瓶 wtforms 选择字段选择未更新
【发布时间】:2016-07-30 15:02:34
【问题描述】:
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 时都没有读取 db 的 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 得到更新.. 那么这有什么问题...

【问题讨论】:

    标签: flask flask-wtforms


    【解决方案1】:

    当我遇到这个问题时,我通过在我的表单的 __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
    

    【讨论】:

    猜你喜欢
    • 2015-10-15
    • 2013-07-11
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多