IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Formulaire de réinitialisation de mot de passe


Sujet :

Django Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 120
    Par défaut Formulaire de réinitialisation de mot de passe
    Bonjour,

    Je souhaite mettre un formulaire dans le cas où l'utilisateur a perdu son mot de passe.

    J'ai vu sur la doc qu'il fallait utiliser "SetPasswordForm" mais je ne vois pas trop comment faire, voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    forms.py
     
    class PwdForm(SetPasswordForm):
        class Meta:
            model=User
            fields = ("username", "email", "password1", "password2")
            labels={'username':'username',
                    'email':'email',
                    'password1':'password1',
                    'password2':'password2'
                ,}
    Et le code de ma vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def change_pwd(request):
        if request.method == 'POST':
            user_form = PwdForm(request.POST)
     
            if user_form.is_valid():
                u = User.objects.get(username='nic')
                u.set_password('nouveau_mot_de_passe')
                u.save()
     
                return HttpResponseRedirect("affiche_partiel.html")
        else:
            user_form = PwdForm()
     
        return render(request, "blabla/new_pwd.html",{'user_form':user_form,})
    Il me met une erreur de type:

    __init__() takes at least 2 arguments (1 given)

    sur la ligne "user_form = PwdForm()"

    Merci

  2. #2
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Salut
    il te manque juste un argument à la création de ton objet .
    Étant donné que tu utilises un modelform, tu dois lui donner une instance représentant ton model en plus des données post pkiosque c'est une mise à jour.

    https://docs.djangoproject.com/fr/1....he-save-method

    Ch

  3. #3
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Oups je n'ai pas lu la bonne ligne.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 120
    Par défaut
    Bonjour,

    En ayant bien relue la doc de Django, SetPasswordForm permet à un utilisateur de changer de mot de passe sans saisir l'ancien, alors que je souhaiterai avoir un lien sur ma page de connexion me permettant de reinitialiser la mot de passe dans le cas ou celui-ci aurait été oublié

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 120
    Par défaut
    Je cherche à utiliser les templates de Django pour reinitialiser/changer les mots de passe des utilisateurs. En effet sur ma page 'login' je souhaite rajouter un lien qui renvoi vers une page pour reinitialiser le mot de passe d'un user si celui-ci la perdu.

    J'ai regarder le tuto sur Django, et plein d'autre mais je n'arrive pas à l'interfacer.


    Dans mon dossier "registration" j'ai copier les templates correspondants à partir du dossier de Django, mais au niveau du fichiers urls.py je rame.

    Voici ce que j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name':'registration/login.html'}, name='login'),
        url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', {'template_name':'registration/logged_out.html'}, name='logout'),
     
     
        url(r'^accounts/password_change/$', 'django.contrib.auth.views.password_change', {'template_name':'registration/password_change_form.html'}, name='password_change'),
        url(r'^accounts/password_change_done/$', 'django.contrib.auth.views.password_change_done', {'template_name':'registration/password_change_done.html'}),
        url(r'^accounts/password_reset/$', 'django.contrib.auth.views.password_reset', {'template_name':'registration/password_reset_form.html'}),
        url(r'^accounts/password_reset_done/$', 'django.contrib.auth.views.password_reset_done', {'template_name':'registration/password_reset_done.html'}),
        url(r'^accounts/password_reset_confirm/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name':'registration/password_reset_confirm.html'}),
    Faut-il rajouter des choses dans le fichier views.py ?

    Merci d'avance

Discussions similaires

  1. Réinitialiser le mot de passe d'un utilisateur
    Par manu94 dans le forum Sécurité
    Réponses: 3
    Dernier message: 19/07/2008, 13h26
  2. Formulaire de changement de mot de passe
    Par missmilie dans le forum Langage
    Réponses: 4
    Dernier message: 01/07/2008, 13h28
  3. Formulaire de changement de mot de passe
    Par aityahia dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/06/2008, 10h40
  4. Formulaire pour recuperer son mot de passe
    Par Jean73 dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2006, 12h30
  5. Formulaire protégé par un mot de passe
    Par SpyesX dans le forum Access
    Réponses: 10
    Dernier message: 13/03/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo