Buenas tardes a todos
Estoy desenvolupando un pequeña aplicacion en Django y tengo un problema al comparar dos emails.
Primero os dejo el codigo para que podais mirarlo:
forms.py
Código Python:
Ver originalemail = forms.EmailField(label='Email')
repemail = forms.EmailField(label='Repite Email')
#Validacion camp email
def clean_email(self):
email = self.cleaned_data['email']
try:
user = User.objects.get(email=email)
except User.DoesNotExist:
return email
raise forms.ValidationError("El Email ja existe")
def clean_repemail(self):
email = self.cleaned_data.get('email'," ")
repemail = self.cleaned_data['repemail']
if email == repemail:
return repemail
raise forms.ValidationError("Los Emails no coinciden")
views.py
Código Python:
Ver originaldef altausu(request):
if request.method == 'POST':
formulari = AltaForm(request.POST)
if formulari.is_valid():
usuario = formulari.cleaned_data['usuario']
contraseña = formulari.cleaned_data['contraseña']
email = formulari.cleaned_data['email']
#Creem un objecte User per guardar les dades de l'usuari
user = User.objects.create_user(
username = usuario,
email = email,
password = contraseña
)
#Marquem l'usuari com a actiu
user.is_active = True
user.save()
return render_to_response('nouusu.html',{
'usuario':usuario,
}, context_instance=RequestContext(request))
else:
formulario = AltaForm()
return render_to_response('altausu.html', {
'formulario':formulario,
}, context_instance=RequestContext(request))
altausu.html
Código HTML:
Ver original<table cellpadding="0" cellspacing="0" id="index_cnt"> <tr><td id="login_title">Alta Nou Usuari
<hr /></td></tr> <form name='altausuari' method='post' action='/altausu/' onSubmit="validar()" autocomplete="off">{% csrf_token %}
{{ formulari.usuari.label}}
<div onKeyDown="comp_usuari(altausuari)" onKeyUp="comp_usuari(altausuari)"> {{ formulari.usuari }}
<div id="usuari_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)"> <div id="usuari_error" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/error.png); {% if formulari.usuari.errors %} visibility:visible {% endif %}" onMouseOver="error_usuari_mostrar()" onMouseOut="error_usuari_ocultar()"> <div id="missatge_error_usuari" class="missatge_error">L'usuari ja existeix
</div> {{ formulari.contrasenya.label}}
<div onKeyDown="comp_contra(altausuari)" onKeyUp="comp_contra(altausuari)"> {{ formulari.contrasenya }}
<div id="contrasenya_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)"> <div id="contrasenya_error" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/error.png); {% if formulari.contrasenya.errors %} visibility:visible {% endif %}" onMouseOver="error_contrasenya_mostrar()" onMouseOut="error_contrasenya_ocultar()"> <div id="missatge_error_contrasenya" class="missatge_error">Longitud de la contrasenya incorrecta
</div> {{ formulari.repcontrasenya.label}}
<div onBlur="comp_repcontra(altausuari)" onKeyDown="comp_repcontra(altausuari)" onKeyUp="comp_repcontra(altausuari)"> {{ formulari.repcontrasenya }}
<div id="repcontrasenya_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)"> <div id="repcontrasenya_error" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/error.png); {% if formulari.repcontrasenya.errors %} visibility:visible {% endif %}" onMouseOver="error_repcontrasenya_mostrar()" onMouseOut="error_repcontrasenya_ocultar()"> <div id="missatge_error_repcontrasenya" class="missatge_error">Les contrasenyes no coincideixen
</div> {{ formulari.email.label}}
<div onKeyDown="comp_email(altausuari)" onKeyUp="comp_email(altausuari)"> {{ formulari.email }}
<div id="email_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)"> <div id="email_error" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/error.png); {% if formulari.email.errors %} visibility:visible {% endif %}" onMouseOver="error_email_mostrar()" onMouseOut="error_email_ocultar()"> <div id="missatge_error_email" class="missatge_error">El Email ja existeix
</div> {{ formulari.repemail.label}}
<div onKeyDown="comp_repemail(altausuari)" onKeyUp="comp_repemail(altausuari)"> {{ formulari.repemail }}
<div id="repemail_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)"> <div id="repemail_error" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/error.png); {% if formulari.repemail.errors %} visibility:visible {% endif %}" onMouseOver="error_repemail_mostrar()" onMouseOut="error_repemail_ocultar()"> <div id="missatge_error_repemail" class="missatge_error">Els Email no coincideixen
</div> <input type="submit" id="alta" name="alta" value="Donar d'Alta" disabled="disabled"/> <td id="login_pretail"></td>
Mi problema es que cuando quiero validar que los dos correos son iguales si el campo email ja es erróneo porque ja existe entonces la validación del campo repemail ja me da erronea directamente y no se como arreglar ese problema.
Gracias por la ayuda que me podáis ofrecer de antemano.