93 votes

Comment accéder au profil utilisateur dans un modèle Django?

Je stocke des informations supplémentaires par utilisateur à l'aide des AUTH_PROFILE_MODULE .

Nous pouvons accéder à l'utilisateur dans un modèle Django en utilisant {{ request.user }} mais comment accéder aux champs du profil puisque le profil n'est accessible que via une fonction user.get_profile() ?

Est-il vraiment nécessaire de passer explicitement le profil dans le modèle à chaque fois?

139voto

AdamKG Points 6521

Utilisez {{ request.user.get_profile.whatever }} . Le langage de gabarit de Django appelle automatiquement les éléments appelables - dans ce cas, la méthode .get_profile() .

27voto

Rachel Points 636

Je ne sais pas pourquoi c'est différent pour moi, mais je dois utiliser {{utilisateur}} plutôt que {{request.user}}.

8voto

umnik700 Points 6243

Oui, il est possible d'accéder à un profil à partir d'un modèle à l'aide de demande.de l'utilisateur.get_profile

Il y a cependant un petit bémol: pas tous les utilisateurs ont des profils, qui a été dans mon cas avec les utilisateurs admin. Donc appeler directement {{ request.user.get_profile.whatever }} à partir du modèle entraîne une erreur dans de tels cas.

Si vous êtes sûr que tous vos utilisateurs disposent toujours de profils, il est possible d'appeler à partir d'un modèle, sinon appelez get_profile() de dans essayez-à l'exception de bloc dans votre point de vue et de le transmettre au modèle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X