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

unten ist, wie ich die ArticleForm in Ansichten verwendenKolben wtforms SELECT Auswahl aktualisieren nicht

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

mein Problem ist, dass die SELECT nicht die db jedes Mal, wenn ich/article besuchen gelesen/add

Wenn ich einen neuen Typ in ArticleType hinzufüge, wird die Auswahl von SelectField die Auswahl nicht aktualisieren, bis ich den Server neu starte.

aber Wenn ich wie unter

@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()] 

der Artikeltyp aktualisiert werden .. so was ist das Problem mit diesem ...

Antwort

1

Wenn ich dieses Problem treffe ich es mit Bevöl Entscheidungen in __init__ lösen Methode meiner Formular

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/ funktioniert das auch zu. – tyan