Résolue

{{ user.username }} et {{ request.user.username }}

# Django

Bonjour quelle est la differnce entre {{ user.username }} et {{ request.user.username }}
Merci

Salut !

  • quand tu fais {{ user.username }} : tu fais directement référence à une variable user passée au template par le contexte. Si, dans la vue qui rend ce template, tu as envoyé un objet user dans le contexte, alors tu peux accéder à son attribut username directement de cette manière.

  • {{ request.user.username }} : Dans ce cas, tu fais référence à l'utilisateur associé à la requête actuelle. request.user est mis à la disposition du template par le contexte de la requête (request context), à condition que tu aies activé le context processor django.contrib.auth.context_processors.auth (ce qui est activé par défaut si tu utilises django.contrib.auth). Cela permet de récupérer l'utilisateur actuellement authentifié, peu importe l'objet user que tu as pu passer dans le contexte.

En gros, si dans ta vue tu as spécifié un objet user à envoyer au template, tu utiliserais {{ user.username }}. Si tu veux toujours te référer à l'utilisateur connecté, peu importe le contexte envoyé par la vue, tu utiliserais {{ request.user.username }}. C'est une bonne pratique d'utiliser {{ request.user.username }} quand tu veux être sûr de toujours référencer l'utilisateur authentifié actuel.

Merci beaucoup

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.