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 original
email = 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:
altausu.htmlVer original
def 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))
Código HTML:
Ver original
<table cellpadding="0" cellspacing="0" id="index_cnt"> <tr> <td id="alta_body"> <form name='altausuari' method='post' action='/altausu/' onSubmit="validar()" autocomplete="off">{% csrf_token %} <table align="center"> <tr> <td> {{ formulari.usuari.label}} </td> <td> <div onKeyDown="comp_usuari(altausuari)" onKeyUp="comp_usuari(altausuari)"> {{ formulari.usuari }} </div> </td> <td> <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()"> </td> </tr> <tr> <td> {{ formulari.contrasenya.label}} </td> <td> <div onKeyDown="comp_contra(altausuari)" onKeyUp="comp_contra(altausuari)"> {{ formulari.contrasenya }} </div> </td> <td> <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()"> </td> </tr> <tr> <td> {{ formulari.repcontrasenya.label}} </td> <td> <div onBlur="comp_repcontra(altausuari)" onKeyDown="comp_repcontra(altausuari)" onKeyUp="comp_repcontra(altausuari)"> {{ formulari.repcontrasenya }} </div> </td> <td> <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()"> </td> </tr> <tr> <td> {{ formulari.email.label}} </td> <td> <div onKeyDown="comp_email(altausuari)" onKeyUp="comp_email(altausuari)"> {{ formulari.email }} </div> </td> <td> <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()"> </td> </tr> <tr> <td> {{ formulari.repemail.label}} </td> <td> <div onKeyDown="comp_repemail(altausuari)" onKeyUp="comp_repemail(altausuari)"> {{ formulari.repemail }} </div> </td> <td> <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()"> </td> </tr> <tr> <td> <input type="submit" id="alta" name="alta" value="Donar d'Alta" disabled="disabled"/> </td> </tr> </table> <br /> </form> </td> </tr> <tr> </tr> </table>
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.