2017-09-21 6 views
0

J'ai remarqué que parfois mes valeurs par défaut sont ignorées dans les flasques WTForms. Par exemple, ce qui suit frappera parfois une erreur d'assertion:Pourquoi les valeurs par défaut sont-elles ignorées dans les flasques WTForms?

class MyForm(FlaskForm): 
    something = StringField('something', validators=[], default='fun') 

# ... do some stuff 

def do_stuff(): 
    example = MyForm() 
    assert example.something.data == 'fun' 

Répondre

0

La raison est que wtforms flacon sera votre formulaire d'auto-remplissage. La plupart du temps, cela est utile, mais parfois, si vous avez la commande A, faites des formes pour exécuter la commande B, cela cause des problèmes.

Pour vous assurer que votre nouveau formulaire instancié a les valeurs par défaut que vous avez spécifié et que flacon ne fait pas données de tirage de la demande, vous devez passer explicitement formdata=None (par exemple, remplacer MyForm() avec MyForm(formdata=None) comme décrit à http://flask-wtf.readthedocs.io/en/stable/api.html