在表单验证时提示错误:选择一个有效的选项

例如有这样一个表单:

class ProductForm(Form):
    category = fields.MultipleChoiceField(
        widget=widgets.SelectMultiple(),
        choices=((1, '未分类'),),
    )

现在这个表单中category只有一个选项value为1,显示为未分类,如果网页中提交的值不是1,那么就会提示“选择一个有效的选项错误”。

一般我们会在视图函数中request.method等于GET时从数据库获取数据,并给choices赋值。那么这里就要注意,我们要在request.method等于POST时调用校验函数前(is_valid()),也给choices赋值。否则就会因为选项中缺少相应选项而校验错误。

10-19 08:21