2016-04-09 2 views
0
class ArticleForm(Form): 
    type = SelectField('type', choices=[(h.id, h.name) for h in ArticleType.query.all()], coerce=int) 

ниже, как я использую ArticleForm во взглядахколбу wtforms selectfield выбор не обновлять

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

моя проблема заключается в том, что 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()] 

СтатьяВид статья обновляются .. так что проблема с этим ...

ответ

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 
+0

http://stackoverflow.com/questions/31619747/dynamic-select-field-using-wtforms-not-updating/ это также работает тоже. – tyan

Смежные вопросы