2012-08-13 15 views
6

Bir e-posta adresi (ör: [email protected]) verildiğinde, etki alanının ("example.com") etki alanı listesindeki bir listeye dahil edildiğini nasıl doğrularım. Etki alanı ("example.com") belirtilen listede değilse, form bir çeşit hata vermelidir. Formdaki e-posta adresinin etki alanı nasıl doğrulanır?

Bu

ben hata için izleri " 'türü' nesne hiçbir özelliği 'ni getItem' vardır" alıyorum, bu kod ile bugüne kadar 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 

içinde ne var kodumda "forms.ValidationError [...]" satırını yükselt.

Neyi yanlış yaptığımı gören var mı? Yardım için teşekkürler!

cevap

3

Bunu, sizin raise doğrultusunda () yerine [] kullanmak gerekir:

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

olmalı , Ben bir aptalım. Teşekkürler! – goelv

+1

@goelv: Lütfen cevabı kabul edin. – RanRag

2

çizgiyi düşünüyorum ...

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

vay

raise forms.ValidationError("Please enter an Email Address with a valid domain")