【发布时间】:2023-03-08 19:43:01
【问题描述】:
对于我的应用程序,Django User model 中的电子邮件字段应该是必需的,但默认情况下它是可选的。
我搜索了这个问题,但我发现的大多数答案都是关于在自定义 UserCreationForm for example 中设置所需的电子邮件字段:
class CustomUserForm(UserCreationForm):
"""Provide a view for creating users with only the requisite fields."""
class Meta:
model = User
# Note that password is taken care of for us by auth's UserCreationForm.
fields = ('username', 'email')
def __init__(self, *args, **kwargs):
super(CustomUserForm, self).__init__(*args, **kwargs)
self.fields['email'].required = True
但我也想在 User 模型中强制使用电子邮件,因为我在想 ModelForm 可能是前端的东西,并且用户可能会关闭所需的条件使用 chrome 开发工具,我错了吗?在ModelForm 中设置所需的电子邮件是否与在用户model 中设置相同,或者我可以覆盖用户模型以使电子邮件成为必需?
【问题讨论】:
-
表单不只是前端,如果你使用表单来处理数据(通常构造
CustomUserForm(request.POST),它也会在服务器端验证,如果用户已输入email地址)。
标签: django django-models django-forms django-authentication