給定一個電子郵件地址(例如:[email protected]),如何驗證域(「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
到目前爲止,有了這個代碼,我得到錯誤「‘類型’對象有沒有屬性‘的GetItem’」可追溯至行「在我的代碼中raise forms.ValidationError [...]」。
任何人都可以看到我做錯了什麼?謝謝您的幫助!
哇, 我是個白癡。謝謝! – goelv 2012-08-13 18:24:18
@goelv:請接受答案。 – RanRag 2012-08-13 19:21:56