J'ai un site sur lequel j'inclus une userBox avec des données pour chaque utilisateur connecté (votre nom, avatar, etc.). De ce que je sais déjà sur django il semble évident, que je devrais ajouter une requête pour l'utilisateur au processeur de contexte (de sorte que je peux utiliser la variable {{user}}
dans ce userBox inclus). Mais en utilisant la boutique django-lfs, j'ai remarqué que ses templates utilisent la variable {{ user }}
qui n'est nulle part ajoutée aux processeurs de contexte ni aux balises de template. Y at-il un autre moyen d'obtenir l'utilisateur dans mon modèle que ceux 2?Quand utiliser le processeur de contexte
Répondre
Il est ajouté par
django.contrib.auth.context_processors.auth
Et la réponse à la question est: si vous avez besoin d'être dans chaque modèle, vous devez utiliser context_processor.
ok mais utilisera {{user}} du processeur de contexte d'autorisation me permettre d'inclure l'avatar de l'utilisateur ou puis-je vérifier seulement certains paramètres de base comme .is_authenticated etc? – sasquatch90
pour avatar vous avez probablement un modèle de profil non? utilisez http://docs.djangoproject.com/fr/dev/topics/auth/#django.contrib.auth.models.User.get_profile pour l'obtenir. Vous pouvez également écrire votre propre processeur, ce qui mettra le profil en contexte –
à partir des données d'utilisateurs supplémentaires dans vos modèles est facile:
{{ user.get_profile.foobar }}
où foobar est l'un des champs de votre profil. Mais assurez-vous d'avoir défini AUTH_PROFILE_MODULE = 'yourprofileapp.YourProfileModel'
dans settings.py
. Pour plus d'informations voir http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
connexes: http://stackoverflow.com/questions/41547/always-including-the-user-in-the-django-template-context – miku
Je suppose que c'est à ce sujet :) – sasquatch90