2020-04-08 Créé: windows10 / Python-3.8.2-amd64 / Django-3.0.4
La journalisation de l'adresse IP de la source d'accès ne suffit pas à Django pour analyser le comportement des utilisateurs. Pour identifier de manière unique un utilisateur, il est facile de consigner qui y a accédé sur le serveur HTTP.
Personnalisez les en-têtes de réponse pour conserver l'ID utilisateur Django dans les journaux du serveur HTTP. Voici comment ajouter l'ID utilisateur Django à l'en-tête de la demande dans la vue de classe générique.
référence https://blog.howtelevision.co.jp/entry/2014/09/05/170917
Si vous êtes nouveau sur Django, cliquez ici. Tutoriel pratique sur Django en 10 minutes
Ajoutez l'ID utilisateur d'en-tête de réponse que vous souhaitez ajouter à la classe de vue générique.
custom_views.py
class CustomListView(generic.ListView):
def dispatch(self, *args, **kwargs):
response = super().dispatch(*args, **kwargs)
response['userid'] = self.request.user
return response
Au lieu d'hériter de ListView, héritez de CustomListView et déclarez la classe de vue réelle à utiliser.
views.py
from .custom_views import *
from .models import MyClass
from django.contrib.auth.mixins import LoginRequiredMixin
class MemoListView(LoginRequiredMixin, CustomListView):
model = MyClass
La même chose peut être faite avec d'autres classes de vue ainsi que ListView.
Si vous modifiez les paramètres d'un serveur HTTP tel que Nginx et laissez l'en-tête de réponse nouvellement créé dans le journal, la source d'accès sera enregistrée dans le journal.
La fin
Recommended Posts