【发布时间】:2014-11-27 05:28:22
【问题描述】:
我正在尝试覆盖 Django 中默认的无效电子邮件错误消息。正如 Django Doc 所说,以下代码应该可以工作,但事实并非如此。怎么调整?
class BootstrapAuthenticationForm(AuthenticationForm):
forms.Form.error_css_class = 'error'
email = forms.EmailField(max_length=254,
error_messages={'required': 'Please enter a valid email address.',
'invalid': 'Please enter a valid email address.'},
widget=forms.EmailInput({
'required': True,
'class': 'form-control',
'placeholder': 'E-mail address',
}))
而且,error_css_class 不能正常工作:根本没有变化。这个设置有什么问题?
提前致谢。
【问题讨论】:
-
这里有个错误:
widget=forms.EmailInput({..})应该是widget=forms.EmailInput(attrs={...}) -
小部件渲染正常,所以没问题。问题是错误消息没有覆盖默认消息。
-
好吧,我已经测试了自己,是的,它不能正常工作,而对于 Charfield,它几次都不能正常工作,我不确定,可能是我的浏览器的缓存问题。无论如何,我会建议你使用 JS 或 forms clean 方法来解决。
-
我已更改为 attrs,但它没有按我的意思呈现。它在模板 (html) 中正确呈现,因此错误消息与 EmailField 的边界(?)很好。但我想覆盖来自 EmailInput 的错误消息 - 内联弹出错误消息。无论如何,谢谢。
标签: python django forms validation