Tengo una página de configuración de perfil donde los usuarios pueden cambiar su contraseña y deben confirmarla si lo hacen. No puedo hacer que este sea un campo obligatorio, ya que NO TIENEN que cambiar la contraseña. ¿Hay algún ejemplo para validar la contraseña de confirmación SI el campo de contraseña no está vacío? Y luego para comprobar si son iguales? Yo no era capaz de encontrar ningún ejemplo de ello ...django confirmar validador de contraseña
11
A
Respuesta
24
Agregue lo siguiente al método de su forma clean
:
def clean(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if password1 and password1 != password2:
raise forms.ValidationError("Passwords don't match")
return self.cleaned_data
EDITAR
El mensaje de error de validación anterior entrará en non_field_errors
. No especificó qué mensaje de error se muestra en cada campo de contraseña, pero según el contexto, me imagino que es un mensaje "Este campo es obligatorio". Si ese es el caso, asegúrese de que sus campos de formulario tienen required=False
cuando se defina, o si está trabajando con un formulario subclase (y no puede editar los campos del formulario reales) se puede reemplazar el método de la forma __init__
:
class MyForm(SomeOtherForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['password1'].required = False
self.fields['password2'].required = False
Cuestiones relacionadas
- 1. Confirmar contraseña?
- 2. jquery confirmar validación de contraseña
- 3. valide una contraseña con el validador expreso
- 4. Validador de campo personalizado Django vs.
- 5. ASP.NET Validador de expresiones regulares (Fortaleza de la contraseña)
- 6. autenticación django sin contraseña
- 7. JSF 2.0: Validar la igualdad de 2 campos InputSecret (confirmar contraseña) sin escribir el código?
- 8. Validador de Hibernate: aplicar condicionalmente el validador
- 9. cómo recuperar la contraseña en django
- 10. Formulario Django + para restablecer la contraseña
- 11. validador WSDL
- 12. Email Validador de SMTP
- 13. Spring 3 validación basada en anotación: contraseña y contraseña de confirmación
- 14. Aplicación de una longitud mínima en la contraseña de Django
- 15. Cómo restablecer la contraseña de administrador de Django
- 16. restablecimiento de contraseña Django. No envío de correo
- 17. Cómo crear el campo de entrada de contraseña en django
- 18. Validador de WCF personalizado: cómo inicializar un objeto "Usuario" del validador personalizado
- 19. Uso del validador JSR-303 en lugar del Validador de primavera
- 20. Django 1.0, usando el restablecimiento de contraseña predeterminado
- 21. Symfony 2 validador único
- 22. ¿Hay un validador de PHP?
- 23. Validador personalizado/Restricción con argumentos/parámetros en Symfony 2
- 24. jQuery confirmar diálogo
- 25. ¿Confirmar con mensaje dinámico?
- 26. ¿Cómo confirmar NUMA?
- 27. confirmar cuadro personalizado?
- 28. Confirmar el registro
- 29. Confirmar UITextview autocompletar
- 30. subclipse anular y confirmar?
Ver texto de arriba. –
Gracias! en realidad lo encontré antes de tu edición. Para referencia de otra persona: https://docs.djangoproject.com/en/dev/ref/forms/validation/ – KVISH
Creo que realmente quiere 'si contraseña1 y contraseña1! = Contraseña2:' de lo contrario, ingrese una contraseña en 'contraseña1' y nada en 'password2' no causará un error de validación (suponiendo que tiene' required = False' en ambos campos, como es probable para un formulario de 'cambio de contraseña') – Anentropic