Speichern der Benutzeraktivität in Django

8

Ich möchte die Aktivität eines Benutzers speichern, bin mir aber nicht sicher, wo ich diese speichern soll. Ich denke nicht, Datenbank ist eine Option, da es sehr groß sein wird. Ich möchte wissen, wie Websites wie Facebook, Dropbox alle Aktivitäten eines bestimmten Benutzers erinnern. Und es kann nicht in Sitzungen gespeichert werden, da dies nicht sitzungsspezifisch, sondern benutzerspezifisch ist.

Bitte helfen Sie mir mit Ihrem Vorschlag.

    
Saransh Mohapatra 21.02.2013, 11:46
quelle

2 Antworten

6

Sie können sich den django-activity-stream ansehen, der eine Implementierung von Aktivitätsstreams . Dies speichert eine Liste von Aktionen in der Datenbank und ermöglicht es den Benutzern / Entitäten, Facebook etwas Ähnliches zu geben, wenn dies das ist, was Sie interessiert.

Wie Sie jedoch bereits erwähnt haben, kann dies zu enormen Datenmengen führen, die für einen herkömmlichen Ansatz mit einer einzelnen Datenbank möglicherweise etwas zu viel sind. Ich bin nicht sicher, wie Seiten wie Twitter damit umgehen, aber wenn Sie nicht sehr schnell skalieren wollen, würde der Standard-Datenbank-Ansatz wahrscheinlich eine Weile dauern.

    
Roarster 21.02.2013 22:59
quelle
6

Normalerweise können Sie Django Admin Logs für eine solche Aktivität verwenden, wenn Sie möchten.

Normalerweise verfolgt Django Admin-Aktionen wie das Erstellen, Aktualisieren oder Löschen vorhandener Datensätze. Es hat die folgende Struktur:

%Vor%

Ich benutze das in meinem System als Logger und protokolliere jede Aktion. Normalerweise loggt Django Logs ein, aktualisiert oder löscht Operationen, die über Admin-Formulare ausgeführt wurden, und ich protokolliere meine handschriftliche Ansicht und Formularaktionen. Außerdem können Sie Benutzeraktionen wie das Anmelden / Abmelden mit Signalen .

Ich habe neue Aktionsflags definiert. Django verwendet 3 Flags: 1 zum Einfügen, 2 zum Aktualisieren und 3 zum Löschen. Ich habe diese Liste um meine Aktionsflaggen erweitert.

Der Vorteil dieser Methode besteht darin, dass Sie, wie gesagt, nicht mit den Standard-Django-Admin-Formularen und irgendwelchen Aktionen, die Sie mit diesen Formularen gemacht haben, umgehen müssen.

    
FallenAngel 21.02.2013 12:04
quelle

Tags und Links