[PYTHON] So identifizieren Sie die Zugriffsquelle in der generischen Klassenansicht von Django eindeutig

2020-04-08 Erstellt: windows10 / Python-3.8.2-amd64 / Django-3.0.4

Das Protokollieren der IP-Adresse der Zugriffsquelle reicht Django nicht aus, um das Benutzerverhalten zu analysieren. Um einen Benutzer eindeutig zu identifizieren, ist es einfach zu protokollieren, wer auf dem HTTP-Server darauf zugegriffen hat.

Passen Sie die Antwortheader so an, dass die Django-Benutzer-ID in den HTTP-Serverprotokollen erhalten bleibt. Hier erfahren Sie, wie Sie die Django-Benutzer-ID zum Anforderungsheader in der generischen Klassenansicht hinzufügen.

Referenz https://blog.howtelevision.co.jp/entry/2014/09/05/170917

Wenn Sie neu in Django sind, klicken Sie hier. Praktisches Tutorial zu Django in 10 Minuten

Definieren Sie eine Ansichtsklasse mit einem hinzugefügten Antwortheader

Fügen Sie die Benutzer-ID des Antwortheaders hinzu, die Sie der generischen Ansichtsklasse hinzufügen möchten.

custom_views.py


class CustomListView(generic.ListView):
    def dispatch(self, *args, **kwargs):
        response = super().dispatch(*args, **kwargs)
        response['userid'] = self.request.user
        return response

Definieren Sie die Ansichtsklasse, die tatsächlich aufgerufen werden soll

Anstatt ListView zu erben, erben Sie CustomListView und deklarieren Sie die tatsächlich zu verwendende Ansichtsklasse.

views.py


from .custom_views import *
from .models import MyClass
from django.contrib.auth.mixins import LoginRequiredMixin

class MemoListView(LoginRequiredMixin, CustomListView):
    model = MyClass

Das gleiche kann mit anderen Ansichtsklassen sowie ListView gemacht werden.

Wenn Sie die Einstellungen eines HTTP-Servers wie Nginx ändern und den neu erstellten Antwortheader im Protokoll belassen, wird die Zugriffsquelle im Protokoll aufgezeichnet.

Das Ende

Recommended Posts

So identifizieren Sie die Zugriffsquelle in der generischen Klassenansicht von Django eindeutig
Verwendung von Bootstrap in der generischen Klassenansicht von Django
Hochladen von Dateien in der generischen Klassenansicht von Django
So überprüfen Sie die Version von Django
Ajax in Django (mit generischer Klassenansicht)
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
So ermitteln Sie die Anzahl der Stellen in Python
So greifen Sie auf die globale Variable des importierten Moduls zu
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
So finden Sie die optimale Anzahl von Clustern für k-means
Verwendung der Methode __call__ in der Python-Klasse
So legen Sie das HTML-Klassenattribut in Djangos forms.py fest
So generieren Sie eine Abfrage mit dem IN-Operator in Django
Wie man in Django die angezeigte lange Zeichenkette in der Mitte abkürzt ....
So erstellen Sie einen Datensatz, indem Sie eine Beziehung zum geerbten Modell in das von Django geerbte Modell einfügen
Wie man CSS in Django reflektiert
So implementieren Sie Java-Code im Hintergrund von Red Hat (Linux ONE)
Wie Sie die interne Struktur eines Objekts in Python kennen
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Zeigen Sie den Implementierungsquellcode in iPython an
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So löschen Sie abgelaufene Sitzungen in Django
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
So finden Sie den Ansichtsnamen mit dem Namespace über die URL (path_info) in Django
Verwendung von __slots__ in der Python-Klasse
So greifen Sie von außen auf den Datenspeicher zu
So führen Sie vom Server gesendete Ereignisse in Django durch
Wie man mit verstümmelten Charakteren in json von Django REST Framework umgeht
So zeigen Sie Bilder in Djangos Admin an
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
Ein Memorandum zur Ausführung des Befehls! Sudo magic in Jupyter Notebook
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
Ich bin süchtig nach dem Unterschied, wie Flask und Django JSON-Daten empfangen
So ändern Sie das Erscheinungsbild nicht ausgewählter Fremdschlüsselfelder in Djangos Modellformular
So stellen Sie die Schriftbreite des in pyenv eingegebenen Jupyter-Notizbuchs gleich
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
So installieren Sie das Deep Learning Framework Tensorflow 1.0 in der Windows Anaconda-Umgebung
So berechnen Sie die Volatilität einer Marke
Verwendung der C-Bibliothek in Python
So verfolgen Sie die Arbeit mit Powershell
So implementieren Sie Rails-Helfer-ähnliche Funktionen in Django
Zusammenfassung zum Importieren von Dateien in Python 3
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
So reflektieren Sie ImageField in Django + Docker (Kissen)
Zusammenfassung der Verwendung von MNIST mit Python
So drucken Sie Debug-Meldungen auf der Django-Konsole
So implementieren Sie "named_scope" von RubyOnRails mit Django