Dada una dirección de correo electrónico (por ej .: [email protected]), ¿cómo puedo validar que el dominio ("ejemplo.com") está incluido en una lista dada de dominios? Si el dominio ("ejemplo.com") no está en la lista especificada, el formulario debe generar algún tipo de error.¿Cómo validar el dominio de la dirección de correo electrónico en el formulario?
Esto es lo que tengo hasta ahora en 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
Con este código, estoy consiguiendo el error " 'tipo' objeto no tiene atributo 'GetItem'" que remonta a la línea "raise forms.ValidationError [...]" en mi código.
¿Alguien puede ver lo que estoy haciendo mal? ¡Gracias por la ayuda!
wow , Soy un idiota. ¡Gracias! – goelv
@goelv: Por favor, acepte la respuesta. – RanRag