Résolue

Compréhension is_authenticated

# Boucles # Django # HTML

salut la team, je veux tester , sur la pagen d'accueil, si chacun des shopper enregistrés sont connectés. Je boucle dans le template index.htmlsur tous les shopper et sur ma page d'accueil ils apparaissent tous comme connectés!
Voici le code dans le template avec shoppers = Shopper.objects.all() dans la vue index:

% for shopper in shoppers %}
        {% if shopper.is_authenticated %}
            {{ shopper.username}} est connecté
            <a href="{% url 'logout' %}">Se déconnecter</a>
        {% endif %}
    {% endfor %}

Tout le monde apparait comme connecté, pour quelle raison?
Merci.
Ali

Kévin Silliau

Mentor

Salut Ali !

Je pense que ton souci est lié à une mauvaise compréhension de l'attribut "is_authenticated".
Mais aucun problème ! Je vais prendre le temps de t'expliquer pour que tu comprennes. :)

Avec Django, "is_authenticated" n'est pas une propriété des modèles de données utilisateurs (comme "User" par exemple) mais plutôt une propriété de l'objet "request.user" qui représente l'utilisateur actuellement connecté à la session !
Ainsi, c'est normal que cela ne marche pas, car cette propriété ne te permet pas de faire ce que tu souhaites et ne va t'afficher que si l'utilisateur actuel est connecté ou non.

Dans le cours d'ailleurs, Thibault montre qu'il affiche seulement si l'utilisateur est actuellement connecté ou non, et pas la liste des utilisateurs. :)

Si tu veux vraiment trouver un moyen d'afficher l'ensemble des utilisateurs connectés, il faudra implémenter une logique différente, avec la gestion de session ou des champs personnalisés dans ton modèle utilisateur pour suivre l'état de connexion.

Si tu n'as pas compris ou que tu as d'autres questions, n'hésites pas !

Salut Kevin, merci pour ta réponse. Je comprends l'utilité de "is_authenticated" du request.user et l'intérêt des sessions ;-)
Bonne journée.
Ali

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.