Volevo creare un modulo per reimpostare la password dell'utente. Dovrebbe essere il current_password
e quindi lo new_password
e confirm_new_password
. Sono in grado di eseguire la convalida per verificare che le nuove password corrispondano. Come potrei essere in grado di convalidare lo current_password
? C'è un modo per passare nell'oggetto User
nel modulo?Modulo Django + per reimpostare la password
5
A
risposta
6
Django viene fornito con un costruito in PasswordChangeForm
che è possibile importare e utilizzare nella vista.
from django.contrib.auth.forms import PasswordChangeForm
Ma non è nemmeno necessario scrivere la propria vista di reimpostazione della password. C'è una coppia di viste django.contrib.with.views.password_change
e django.contrib.auth.views.password_change_done
, che puoi collegare direttamente alla configurazione dell'URL.
0
Trovato un ottimo esempio di questo: http://djangosnippets.org/snippets/158/
[EDIT]
ho usato il link qui sopra e ha fatto un paio di modifiche. Sono qui di seguito:
class PasswordForm(forms.Form):
password = forms.CharField(widget=forms.PasswordInput, required=False)
confirm_password = forms.CharField(widget=forms.PasswordInput, required=False)
current_password = forms.CharField(widget=forms.PasswordInput, required=False)
def __init__(self, user, *args, **kwargs):
self.user = user
super(PasswordForm, self).__init__(*args, **kwargs)
def clean_current_password(self):
# If the user entered the current password, make sure it's right
if self.cleaned_data['current_password'] and not self.user.check_password(self.cleaned_data['current_password']):
raise ValidationError('This is not your current password. Please try again.')
# If the user entered the current password, make sure they entered the new passwords as well
if self.cleaned_data['current_password'] and not (self.cleaned_data['password'] or self.cleaned_data['confirm_password']):
raise ValidationError('Please enter a new password and a confirmation to update.')
return self.cleaned_data['current_password']
def clean_confirm_password(self):
# Make sure the new password and confirmation match
password1 = self.cleaned_data.get('password')
password2 = self.cleaned_data.get('confirm_password')
if password1 != password2:
raise forms.ValidationError("Your passwords didn't match. Please try again.")
return self.cleaned_data.get('confirm_password')
Problemi correlati
- 1. Genera URL temporaneo per reimpostare la password
- 2. Come reimpostare la password di amministratore in Django
- 3. È meglio reimpostare la password o inviare la password persa?
- 4. Devise modello di posta per reimpostare la password
- 5. Cambio di password Django modulo di visualizzazione
- 6. AngularJs. $ SetPristine per reimpostare il modulo
- 7. Come ripristinare o reimpostare la password del pacchetto SSIS?
- 8. Modella Django come aggiungere un campo per confermare la password?
- 9. Come ottenere il metodo parsley.js reset() per reimpostare il modulo
- 10. Django South - Come reimpostare la cronologia delle migrazioni e avviare la pulizia sull'app Django
- 11. come recuperare la password in django
- 12. Cambiare la password in Django Admin
- 13. Django force password expiration
- 14. generatore di password python per django
- 15. Come reimpostare l'utente per la gestione di rabbitmq
- 16. Django problemi di password
- 17. Come inviare il link per reimpostare la password via e-mail utilizzando la coda in laravel 5
- 18. Crittografia delle password su POST Django
- 19. Sovrascrivi campo modulo django-allauth
- 20. Come posso reimpostare nome utente e password per SQL Server 2008
- 21. utente django disconnesso dopo la modifica della password
- 22. Convalida modulo Django e personalizzato
- 23. Come reimpostare un modulo a livello di programmazione?
- 24. Bootstrap 3 DatePicker - Come reimpostare la data selezionata senza reimpostare la configurazione del selettore?
- 25. Django unit testing per modulo di modifica
- 26. IE non offre di salvare la password del modulo ASP.NET
- 27. Etichette per Django selezionare il campo modulo
- 28. Qual è un metodo sicuro ed efficiente per gli utenti del sito Web di reimpostare la propria password?
- 29. Django 1.0, utilizzando la reimpostazione della password predefinita
- 30. Django 1.9 createsuperuser bypass la convalida il controllo della password
Per i miei scopi questo non funzionerebbe. Dal momento che sto combinando la reimpostazione della password in un modulo che include molte altre cose. Ma questo sarebbe il modo corretto per questo caso d'uso. – KVISH
@KVISH So che questo è un commento molto tardo, ma per la cronaca, è possibile visualizzare ed elaborare più di un modulo Django all'interno di un '