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 :

authenticate le retourne un None


Sujet :

Django Python

  1. #1
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut authenticate le retourne un None
    bonjour
    j'aissaie de faire authentifier un user a l'aide de la fonction authenticate de contrib.auth Django 2.2, mais ca me retourne toujours un None , j'ai beau chercher comment regler ce probleme mais j'ai trouver que mon code est just,voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    def log_in(request):
     
        form=log_inn(request.POST or None)
     
        if form.is_valid():
     
     
            u=form.cleaned_data['username']
            print(str(u)) #ca recupere bien le username et le password
            p=form.cleaned_data['password']
            print(str(p))
            re=authenticate(username=form.cleaned_data['username'],password=form.cleaned_data['password'])
            print(str(re))
     
     
     
            if re is not None:
     
                login(request,re)
     
                return HttpResponseRedirect('/Profil/'+re)
     
     
            else:
     
                return HttpResponse('/kkkkkkkkkkkkkkkkkkkkkkkk :(')
     
        return render(request,'Log_in.html',{'f':form,'username':re})

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Si vous ouvrez la documentation, çà dit qu'authenticate retourne None lorsqu'on ne trouve pas l'utilisateur ou que le mot de passe est invalide.

    La documentation suggère aussi de ne pas utiliser cette méthode:
    Vous n’aurez probablement pas l’usage de cette méthode, sauf si vous écrivez votre propre système d’authentification. Si vous recherchez un moyen de connecter un utilisateur, utilisez plutôt la classe LoginView.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut
    pour le username et le password son just, pour le LoginView je vais me docummenter sur lui si c'est plus pratique,mais je dois savoire pourquoi cette technique ne marche pas pour moi alors que tout est juste

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Citation Envoyé par animalx123 Voir le message
    mais je dois savoir pourquoi cette technique ne marche pas pour moi alors que tout est juste
    Vous pouvez lancez le "shell" et commencer par vérifier si authenticate fonctionne dans ce contexte.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut
    je trouve ca bizzard ,j'ai essayer LoginViews mais ca me dit que l'username ou le mot de passe est incorect pourtant j'ai bien tout reverifier du username au codes,et quand je clique sur login ca m'affiche au niveux du terminal Not found: /favicon.ico que je ne comprend pas c'est quoi
    voici mon url.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from django.urls import path,include
    from . import views
    from django.contrib.auth import views as auth_views
     
    urlpatterns=[
        path('',views.course),
        path('SingIn',views.sing_in,name='singin'),
        path('LogIn/',auth_views.LoginView.as_view(template_name='Log_in.html'),name='login')]
    et mon template:
    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div class="login_f" >
    <h3>LogIn</h3>
     
    <form  method="post" action="{% url 'login'%}">
     
    {%csrf_token%}
     
    {{form.as_p}}
     
    {{form.errors}}
    <input type="submit" value="Login"/>
     
    </form>
    </div>

    et j'ai ajouter dans settings:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOGIN_REDIRECT_URL = 'new_course/'

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 808
    Points : 7 086
    Points
    7 086
    Par défaut
    Bonjour,

    Je ne comprend pas la relation entre le 1er message et l'utilisation dans urls.py

    On devrait y trouver un views.log_in quelque part dans urls.py
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par animalx123 Voir le message
    je trouve ca bizzard ,j'ai essayer LoginViews mais ca me dit que l'username ou le mot de passe est incorect pourtant j'ai bien tout reverifier du username au codes,
    C'est cohérent avec le problème initial... et je vous ai déjà suggéré d'essayer via le shell.
    note: quand vous avez un problème, il faut essayer de simplifier pour discerner ce qu'il faut approfondir.

    Citation Envoyé par animalx123 Voir le message
    et quand je clique sur login ca m'affiche au niveux du terminal Not found: /favicon.ico que je ne comprend pas c'est quoi
    Un peu de recherche sur Internet? Si vous n'avez pas encore le réflexe de commencer par là...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Bonjour,

    Je ne comprend pas la relation entre le 1er message et l'utilisation dans urls.py

    On devrait y trouver un views.log_in quelque part dans urls.py
    mon premier message estait pour s'authentifier avec authenticate et un login() et recuperer le user avec une simple form,mais dans la discution on m'a dit d'essayer d'utiliser un LoginView et je l'ai fait et poster mon nouveau code qui ne marche pas aparament comme le premier,
    voici le message dans le template
    Please enter a correct username and password. Note that both fields may be case-sensitive.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Ce que vous ne comprenez pas c'est que Django, c'est compliqué et que lire quelques lignes de code ne raconte pas grand chose sur la configuration de votre application: on ne sait même pas si l'utilisateur qui essaie de se connecter existe!

    Si vous ne commencez pas par essayer de faire fonctionner les exemples de base comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> from django.contrib.auth.models import User, authenticate
    >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
    >>> authenticate(username='john', password='johnpassword')
    <User: john>
    >>>
    ben, çà ne marchera pas mieux dans un contexte plus compliqué.

    Et si vous n'êtes pas capable de faire ce minimum là: lire un tuto, faire quelques manips pour comprendre comment çà fonctionne, Django, c'est peut être encore un peu trop compliqué pour vous.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut
    enfait tu a taper dans le mille ,le probleme venait de la vue d'inscription car au lieux de faire le create_user moi j'ai tout enregistrer avec user.save depuis le formulaire,et c'est grace au shell que je l'ai dicouvert,merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Authenticator.getSession retourne null
    Par smfrd8 dans le forum Général Java
    Réponses: 0
    Dernier message: 19/03/2014, 20h23
  2. Retourner l'adresse d'une instance ou None
    Par pfeuh dans le forum Général Python
    Réponses: 9
    Dernier message: 21/09/2010, 19h59
  3. Réponses: 1
    Dernier message: 29/04/2010, 16h00
  4. Retourner un talbeau
    Par taupin dans le forum C
    Réponses: 7
    Dernier message: 19/01/2003, 04h22
  5. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16

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