9

メールアドレス(例:goelv@example.com)が与えられた場合、ドメイン( "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

このコードでは、コードの「raiseforms.ValidationError[...]」という行にトレースするエラー「'type'オブジェクトには属性' getitem '」がありません。

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

4

2 に答える 2

7

次のように、行()の代わりに使用する必要があります。[]raise

raise forms.ValidationError("Please enter a valid Penn Email Address")
于 2012-08-13T18:22:41.083 に答える
4

私はラインだと思います...

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

する必要があります

raise forms.ValidationError("Please enter an Email Address with a valid domain")
于 2012-08-13T18:23:09.407 に答える