Par exemple, si vous utilisez Django pour créer un site Web, la plupart des pages contiendront des informations utilisateur, telles que le nom d'utilisateur, l'avatar, etc.
Mais il m'est impossible de transmettre une variable utilisateur dans le contexte pour chaque vue, n'est-ce pas ?
Comment puis-je habituellement répondre à mes besoins ?
Vous devez trop vous inquiéter, vous n'avez pas besoin de les écrire un par un manuellement, il est déjà là par défaut, utilisez-le simplement, par exemple : {{user.username}}
Mais il n'y a pas d'informations de champ personnalisé comme un avatar.
Ou vous pouvez personnaliser un context_processors.py pour renvoyer les informations souhaitées, puis l'importer dans settings.py. Il n'est pas nécessaire de revenir dans chaque fonction
Cela devrait être {{request.user.username}}.
Et Django prend en charge la définition de variables globales
Une fois l'utilisateur connecté, les informations utilisateur seront généralement stockées dans request.user. Il n'est pas nécessaire de transmettre la variable utilisateur dans le contexte. Le principe est que django.template.context_processors.request est référencé dans les paramètres
.Point supplémentaire : si une partie fixe du contenu apparaît sur plusieurs pages, vous pouvez utiliser l'héritage de modèle pour extraire les mêmes parties et modifier le contenu du modèle via extends et include.