Foros del Web » Programando para Internet » Python »

Comparar dos emails mediante la validaciones de los formularios

Estas en el tema de Comparar dos emails mediante la validaciones de los formularios en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/08/2012, 10:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 9
Antigüedad: 14 años, 11 meses
Puntos: 0
Comparar dos emails mediante la validaciones de los formularios

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 original
  1. email = forms.EmailField(label='Email')
  2. repemail = forms.EmailField(label='Repite Email')
  3.  
  4. #Validacion camp email
  5.     def clean_email(self):
  6.         email = self.cleaned_data['email']
  7.  
  8.         try:
  9.             user = User.objects.get(email=email)
  10.            
  11.         except User.DoesNotExist:
  12.             return email
  13.            
  14.         raise forms.ValidationError("El Email ja existe")
  15.  
  16.     def clean_repemail(self):
  17.  
  18.         email = self.cleaned_data.get('email'," ")
  19.        
  20.         repemail = self.cleaned_data['repemail']
  21.        
  22.         if email == repemail:
  23.  
  24.             return repemail
  25.  
  26.         raise forms.ValidationError("Los Emails no coinciden")

views.py

Código Python:
Ver original
  1. def altausu(request):
  2.  
  3.     if request.method == 'POST':
  4.         formulari = AltaForm(request.POST)
  5.         if formulari.is_valid():
  6.  
  7.             usuario = formulari.cleaned_data['usuario']
  8.             contraseña = formulari.cleaned_data['contraseña']
  9.             email = formulari.cleaned_data['email']
  10.  
  11.             #Creem un objecte User per guardar les dades de l'usuari
  12.             user = User.objects.create_user(
  13.                         username = usuario,
  14.                         email = email,
  15.                         password = contraseña
  16.                     )
  17.            
  18.             #Marquem l'usuari com a actiu
  19.             user.is_active = True
  20.  
  21.             user.save()
  22.  
  23.             return render_to_response('nouusu.html',{
  24.                                 'usuario':usuario,
  25.                             }, context_instance=RequestContext(request))
  26.     else:
  27.         formulario = AltaForm()
  28.     return render_to_response('altausu.html', {
  29.                     'formulario':formulario,
  30.                 }, context_instance=RequestContext(request))
altausu.html

Código HTML:
Ver original
  1. <table cellpadding="0" cellspacing="0" id="index_cnt">
  2.     <tr><td id="cnt_top"></td></tr>
  3.     <tr><td id="login_title">Alta Nou Usuari<hr /></td></tr>
  4.     <tr>
  5.         <td id="alta_body">
  6.             <form name='altausuari' method='post' action='/altausu/' onSubmit="validar()" autocomplete="off">{% csrf_token %}
  7.                 <table align="center">
  8.                     <tr>
  9.                         <td>
  10.                             {{ formulari.usuari.label}}
  11.                         </td>
  12.                         <td>
  13.                             <div onKeyDown="comp_usuari(altausuari)" onKeyUp="comp_usuari(altausuari)">
  14.                                 {{ formulari.usuari }}
  15.                             </div>
  16.                         </td>
  17.                         <td>
  18.                             <div id="usuari_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)">
  19.                             <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()">
  20.                             <div id="missatge_error_usuari" class="missatge_error">L'usuari ja existeix</div>
  21.                         </td>
  22.                     </tr>
  23.                     <tr>
  24.                         <td>
  25.                             {{ formulari.contrasenya.label}}
  26.                         </td>
  27.                         <td>
  28.                             <div onKeyDown="comp_contra(altausuari)" onKeyUp="comp_contra(altausuari)">
  29.                                 {{ formulari.contrasenya }}
  30.                             </div>
  31.                         </td>
  32.                         <td>
  33.                             <div id="contrasenya_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)">
  34.                             <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()">
  35.                             <div id="missatge_error_contrasenya" class="missatge_error">Longitud de la contrasenya incorrecta</div>
  36.                         </td>
  37.                     </tr>
  38.                     <tr>
  39.                         <td>
  40.                             {{ formulari.repcontrasenya.label}}
  41.                         </td>
  42.                         <td>
  43.                             <div onBlur="comp_repcontra(altausuari)" onKeyDown="comp_repcontra(altausuari)" onKeyUp="comp_repcontra(altausuari)">
  44.                                 {{ formulari.repcontrasenya }}
  45.                             </div>
  46.                         </td>
  47.                         <td>
  48.                             <div id="repcontrasenya_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)">
  49.                             <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()">
  50.                             <div id="missatge_error_repcontrasenya" class="missatge_error">Les contrasenyes no coincideixen</div>
  51.                         </td>
  52.                     </tr>
  53.                     <tr>
  54.                         <td>
  55.                             {{ formulari.email.label}}
  56.                         </td>
  57.                         <td>
  58.                             <div onKeyDown="comp_email(altausuari)" onKeyUp="comp_email(altausuari)">
  59.                                 {{ formulari.email }}
  60.                             </div>
  61.                         </td>
  62.                         <td>
  63.                             <div id="email_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)">
  64.                             <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()">
  65.                             <div id="missatge_error_email" class="missatge_error">El Email ja existeix</div>
  66.                         </td>
  67.                     </tr>
  68.                     <tr>
  69.                         <td>
  70.                             {{ formulari.repemail.label}}
  71.                         </td>
  72.                         <td>
  73.                             <div onKeyDown="comp_repemail(altausuari)" onKeyUp="comp_repemail(altausuari)">
  74.                                 {{ formulari.repemail }}
  75.                             </div>
  76.                         </td>
  77.                         <td>
  78.                             <div id="repemail_ok" class="perfil_comp" style="background-image:url({{STATIC_URL}}img/ok.png)">
  79.                             <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()">
  80.                             <div id="missatge_error_repemail" class="missatge_error">Els Email no coincideixen</div>
  81.                         </td>
  82.                     </tr>
  83.                     <tr>
  84.                         <td></td>
  85.                         <td>
  86.                             <input type="submit" id="alta" name="alta" value="Donar d'Alta" disabled="disabled"/>
  87.                         </td>
  88.                     </tr>
  89.                 </table>
  90.                 <br />
  91.             </form>
  92.         </td>
  93.     </tr>
  94.     <tr>
  95.         <td id="login_pretail"></td>
  96.     </tr>

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.
  #2 (permalink)  
Antiguo 20/08/2012, 10:25
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Comparar dos emails mediante la validaciones de los formularios

No veo que uses la función clean_repemail en tu vista. Tal vez ese pueda ser el problema.

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:55.