2012-08-13 2 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 

에있는 것입니다 line "raise forms.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")