ListField上的WTForms验证错误

时间:2013-04-13 01:44:00

标签: python validation wtforms flask-wtforms

我收到以下错误

ValidationError:ValidationError(值必须是['AL','CT','DE','FL'......'WY']之一:['state'])

但我似乎无法弄清楚为什么当我在我的模特中时它会验证该字段;

class User(mongoengine.Document): 

    username = mongoengine.StringField(unique=True, max_length=30, required=True,verbose_name="Pick a Username") 
    state = mongoengine.ListField(required=False, verbose_name="State", choices=[('AL' , 'Alabama'), ('AK' , 'Alaska') ,('AZ' , 'Arizona'), ('AR' , 'Arkansas') ,('CA' , 'California'), ('CO' , 'Colorado') ,('CT' , 'Connecticut'), ('DE' , 'Delaware') ,('FL' , 'Florida')...('WY' , 'Wyoming')]) 

user_form = model_form(User, exclude=['password','name','address','address2','zipcode','state']) 
signup_form = model_form(User, exclude=['name','address','address2','zipcode','state'])

我很茫然,因为我首先要求require = false意味着它会被忽略,其次排除也让我觉得它应该被忽略。为什么这个验证错误仍然发生(除了我没有在表单中填写它的事实)?有关更多上下文,可以在此处找到完整的model.py和app.py

https://github.com/markbreneman/TroubleShooting/tree/master/SecondNatureWebsite

1 个答案:

答案 0 :(得分:1)

required=False表示用户没有义务在该字段中输入至少1个数据。 也许输入表单中的选项和字段的预定义选项不匹配。