有人能解释一下如何在Django中验证电子邮件地址吗?例如,我想检查一封电子邮件是否是有效的以.edu结尾的大学电子邮件地址。我该怎么做呢?
from django import forms
from .models import SignUp
class SignUpForm(forms.ModelForm):
class Meta:
model = SignUp
fields = ['full_name','email']
def clean_email(self):
email = self.cleaned_data.get('email')
return email
3条答案
按热度按时间cngwdvgl1#
假设您的
SignUp.email
字段是EmailField
,Django会负责验证它是否是一个有效的电子邮件地址,您所需要做的就是检查它是否以.edu
结尾,如果不是,则引发ValidationError
。最好创建一个验证器并将其添加到您的模型字段中,这样Django就会在您使用
SignUpForm
时运行您的验证器,或者在Django admin等其他地方进行模型验证。mmvthczy2#
只需根据需要创建一个正则表达式,或者使用一些标准的正则表达式更好。
事实上,更好的方法是按照@Alasdair的建议使用
EmailField
,这将自动确保您也能使用EmailField
(除非您真的需要将电子邮件地址限制为自定义格式)。kq0g1dla3#
如果您想修改Django表单中的电子邮件