[PYTHON] Comment identifier de manière unique la source d'accès dans la vue de classe générique Django

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

Définir une classe de vue avec un en-tête de réponse ajouté

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

Définir la classe de vue à appeler

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

Comment identifier de manière unique la source d'accès dans la vue de classe générique Django
Comment utiliser le bootstrap dans la vue de classe générique Django
Comment télécharger des fichiers dans la vue de classe générique Django
Comment vérifier la version de Django
Ajax dans Django (en utilisant la vue de classe générique)
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Comment obtenir le nombre de chiffres en Python
Comment accéder à la variable globale du module importé
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment écrire une validation personnalisée dans Django REST Framework
Comment trouver le nombre optimal de clusters pour les k-moyennes
Comment utiliser la méthode __call__ dans la classe Python
Comment définir l'attribut de classe html dans le formulaire forms.py de Django
Comment générer une requête à l'aide de l'opérateur IN dans Django
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Comment créer un enregistrement en collant une relation au modèle source d'héritage dans le modèle hérité par Django
Comment refléter CSS dans Django
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
Comment connaître la structure interne d'un objet en Python
Comment changer la couleur du seul bouton pressé avec Tkinter
Comment vérifier la taille de la mémoire d'une variable en Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Afficher le code source de l'implémentation dans iPython
[Introduction à Python] Comment utiliser la classe en Python?
Comment supprimer des sessions expirées dans Django
Comment comparer si le contenu des objets dans scipy.sparse.csr_matrix est le même
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Pour trouver le nom de la vue avec l'espace de noms à partir de l'URL (path_info) dans Django
Comment utiliser __slots__ dans la classe Python
Comment accéder à la banque de données de l'extérieur
Comment faire des événements envoyés par le serveur dans Django
Comment gérer les caractères déformés dans json de Django REST Framework
Comment afficher les images dans l'administration de Django
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
Un mémorandum expliquant comment exécuter la commande magique! Sudo dans Jupyter Notebook
Comment trouver le coefficient de la courbe approximative passant par les sommets en Python
Je suis accro à la différence dans la façon dont Flask et Django reçoivent les données JSON
Comment changer l'apparence du champ de clé étrangère non sélectionné dans le formulaire modèle de Django
Comment rendre la largeur de police du notebook jupyter mis dans pyenv égale
Comment obtenir une liste de fichiers dans le même répertoire avec python
Comment installer le framework d'apprentissage en profondeur Tensorflow 1.0 dans l'environnement Windows Anaconda
Comment calculer la volatilité d'une marque
Comment utiliser la bibliothèque C en Python
Comment suivre le travail avec Powershell
Comment implémenter la fonctionnalité de type helper Rails dans Django
Résumé de la façon d'importer des fichiers dans Python 3
Afficher le résultat du traitement de la géométrie en Python
Comment refléter ImageField dans Django + Docker (oreiller)
Résumé de l'utilisation de MNIST avec Python
Comment imprimer des messages de débogage sur la console Django
Comment implémenter "named_scope" de RubyOnRails avec Django