python - 排序 WTForms form.errors dict

标签 python google-app-engine python-2.7 wtforms

forms.errors 字典似乎是按字段名排序的,而不是按 它们在表单本身中声明的顺序。

例如

class ProductForm(Form): 
    code = TextField('Code', validators=[Required()]) 
    description = TextField('Description', validators=[Required(), Length(max=100)]) 
    amount = DecimalField('Amount', validators=[Required(), NumberRange(min=0.00, max=1000000.00)]) 
    vat_percentage = DecimalField('VAT %', validators=[Required(), NumberRange(min=0.00, max=100.00)]) 
    inactive_date = DateField('Inactive date', validators=[Optional()]) 

产生的 form.errors 如下:

{'amount': ['Amount is required'], 'code': ['Code is invalid.'], 
'description': ['Description is required'], 'vat_percentage': ['VAT % is required']} 

我想做的是按顺序打印错误 在表格中订购。

这可能吗?

最佳答案

字典本质上是无序的(在 Python 中)。但是,WTForms 包括每个字段在字段和表单上的错误,并且它确实保证可以按照声明的顺序枚举字段。因此,与其枚举 form.errors,不如遍历 form,然后遍历每个 field.errors 以按顺序排列它们:

for field in form:
    for error in field.errors:
        # Display error

关于python - 排序 WTForms form.errors dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427092/

相关文章:

java - GAE - 如何进行 XML-RPC 调用?

javascript - 任何人都可以在云中成功部署 GAE Spring BOOT 应用程序吗

php - 使用 PHP 变量执行 Python 脚本

python - 在 JSON 输出中,强制每个左花括号出现在一个新的单独行中

python - Django 数据库未迁移

python - 使用 Django 找不到页面

python - 从mongoengine中的另一个嵌入式文档访问嵌入式文档

python - 反转列表中行的顺序

google-app-engine - 如何从 appengine.Context 创建云 context.Context

用于计算网页中存在的字体标签的 Python 代码