基于AbstractBaseUser
,我创建了自己的个人资料。在配置文件类中,我定义了
def nonfunc(self):
pass
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
primary_key=True,
validators = [nonfunc,nonfunc],
)
我不想使用django的电子邮件验证,我禁用了html5验证。
<form method="post" novalidate>
但是当我输入无效的电子邮件然后提交表单时,它返回了
Enter a valid email address.
如何完全禁用django默认电子邮件验证?
答案 0 :(得分:0)
您可以使用TextInput
小部件进行渲染。
您应该通过添加Meta
类来覆盖默认小部件:
class MyUserForm(ModelForm):
class Meta:
model = MyUser
fields = ('email',)
widgets = {
'email': TextInput(),
}
Form
:只需使用小部件实例化参数
即可email = forms.EmailField(widget=forms.TextInput())
它应该变成这样:
<input name="email" required="" id="id_email" type="email">
进入这个:
<input name="email" required="" id="id_email" type="text">
因此禁用客户端的内置电子邮件输入验证。
但是:
请记住,它不会关闭后端验证。只有前端一个。但是,由于您似乎只是尝试用自制的JS替换前端验证,这应该没问题。