gpt4 book ai didi

python - 如何验证表单中的电子邮件地址域?

转载 作者:太空狗 更新时间:2023-10-29 21:47:09 28 4
gpt4 key购买 nike

给定一个电子邮件地址(例如:goelv@example.com),我如何验证域(“example.com”)是否包含在给定的域列表中。如果域(“example.com”)不在指定列表中,表单应该会引发某种错误。

这是我目前在 forms.py 中的内容

class UserCreationFormExtended(UserCreationForm):
email = forms.EmailField(required=True)

class Meta:
model = User
fields = ("username", "email", "password1", "password2",)

def clean_email(self):
data = self.cleaned_data['email']
domain = data.split('@')[1]
domain_list = ["gmail.com", "yahoo.com", "hotmail.com",]
if domain not in domain_list:
raise forms.ValidationError["Please enter an Email Address with a valid domain"]
return data

def save(self, commit=True):
user = super(UserCreationFormExtended, self).save(commit=False)
user.email = self.cleaned_data["email"]
if commit:
user.save()
return user

使用此代码,我收到错误“'type' 对象没有属性 'getitem'”,该错误可追溯到我的“raise forms.ValidationError[...]”行代码。

谁能看出我做错了什么?感谢您的帮助!

最佳答案

您需要在 raise 行中使用 () 而不是 [],如下所示:

raise forms.ValidationError("Please enter a valid Penn Email Address")

关于python - 如何验证表单中的电子邮件地址域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11940038/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com