2012-08-13 13 views
6

एक ईमेल पता (ex: [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' है" हो रही है है लाइन "फॉर्म बढ़ाएं। वैधता त्रुटि [...]" मेरे कोड में।

किसी को भी मैं गलत क्या कर रहा देख सकते हैं? सहायता के लिए धन्यवाद!

उत्तर

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")