表单字段验证 - 谁呈现错误?

时间:2015-01-11 10:30:13

标签: django

我的模型包含2个PositiveSmallIntegerField类型的字段。 我对这个模型和这些字段有一个ModelForm

我的验证工作正常。但是,如果我输入负数或字母数字字符串,我会将验证错误视为某种弹出窗口(请参阅下面的图片)。我的问题:是浏览器呈现的验证错误?不应该将Django作为HTML代码呈现错误吗? 我可以用django翻译翻译这个错误吗?

此外,在表单的clean方法中,我进行了自定义验证,并执行此操作:

if cleaned_data['capacity_min'] > cleaned_data['capacity_max']:
    raise ValidationError(_("Some message"))

我可以翻译这个,并按照我的预期呈现,页面中的简单HTML代码

谢谢

firefox

会发生这种情况

enter image description here

Google Chrome就是这样 enter image description here

1 个答案:

答案 0 :(得分:0)

这些提示错误由浏览器显示。浏览器拒绝将无效表单提交给服务器,因此您的django验证甚至无法运行。

要解决此问题,请将您的小部件从NumberInput更改为TextInput

class MyForm(forms.ModelForm):

    class Meta:
        ...
        widgets = {
            'capacity_min': forms.TextInput(),
            'capacity_max': forms.TextInput(),
        }