forms.errors dict似乎是在字段名称上排序,而不是在 命令它们在表单中声明。
E.g。
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']}
我想要做的是按顺序打印错误 在表格中订购。
这可能吗?
答案 0 :(得分:4)
字典本质上是无序的(在Python中)。但是,WTForms在字段和表单中包含每个字段的错误, 保证字段可以按声明的顺序枚举。因此,您可以循环遍历form.errors
,然后循环遍历每个form
,以便按顺序排列field.errors
,而不是枚举for field in form:
for error in field.errors:
# Display error
:
{{1}}