我的模型包含2个PositiveSmallIntegerField
类型的字段。
我对这个模型和这些字段有一个ModelForm
。
我的验证工作正常。但是,如果我输入负数或字母数字字符串,我会将验证错误视为某种弹出窗口(请参阅下面的图片)。我的问题:是浏览器呈现的验证错误?不应该将Django作为HTML代码呈现错误吗? 我可以用django翻译翻译这个错误吗?
此外,在表单的clean
方法中,我进行了自定义验证,并执行此操作:
if cleaned_data['capacity_min'] > cleaned_data['capacity_max']:
raise ValidationError(_("Some message"))
我可以翻译这个,并按照我的预期呈现,页面中的简单HTML代码
谢谢
firefox
会发生这种情况
Google Chrome就是这样
答案 0 :(得分:0)
这些提示错误由浏览器显示。浏览器拒绝将无效表单提交给服务器,因此您的django验证甚至无法运行。
要解决此问题,请将您的小部件从NumberInput
更改为TextInput
:
class MyForm(forms.ModelForm):
class Meta:
...
widgets = {
'capacity_min': forms.TextInput(),
'capacity_max': forms.TextInput(),
}