2012-08-13 8 views
6

メールアドレス(例:[email protected])を指定すると、ドメイン(「example.com」)が特定のドメインリストに含まれていることを確認するにはどうすればよいですか。ドメイン( "example.com")が指定されたリストにない場合、フォームは何らかのエラーを発生させるはずです。 電子メールアドレスのドメインをフォームで検証する方法は?

この

は私がエラーにトレース「『タイプ』オブジェクトが属性 『 のGetItem』を持っていません」を取得しています、このコードでは、これまで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 

で持っているものです私のコードでは "フォーム"を立てる.ValidationError [...] "。

誰かが間違っているのを見ることはできますか?助けてくれてありがとう!

答えて

3

あなたはこのように、あなたのraiseラインに代わり[]()を使用する必要があります。

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

うわーであるべき、 私はアホです。ありがとう! – goelv

+1

@goelv:答えを受け入れてください。 – RanRag

2

私はラインを考えて...

raise forms.ValidationError["Please enter an Email Address with a valid domain"] 

raise forms.ValidationError("Please enter an Email Address with a valid domain") 
関連する問題