2010-02-25 18 views
14

Wenn Sie eine Objektinstanz in Djangos Administrator erstellen oder ändern, wird ein Änderungsprotokolleintrag erstellt. Das ist wirklich nett aus ziemlich offensichtlichen Gründen.Verfolgen von Änderungen an Django-Modellinstanzen

Die Instanzen meines Modells werden jedoch von einem normalen Benutzer außerhalb der Verwaltungsoberfläche erstellt. Es wird kein Changelog aufgezeichnet, um seine Erstellung zu notieren (kein großes Problem), aber ich möchte die Bearbeitungen verfolgen, die der Benutzer macht.

Ich möchte auch dem Benutzer dieses vollständige Protokoll (Benutzer + Admin-Edits) im Frontend zeigen, so dass ich eine Möglichkeit brauche, um das Changelog herauszuziehen.

Meine Frage: wie? Gibt es einen einzeiligen Schalter, den ich umblättern kann, um die vollständige Protokollierung zu ermöglichen, oder muss ich etwas tun und etwas an der Logik meines Benutzer-Formulars bearbeiten?

+2

Sie können django admin LogEntry-Modell selbst verwenden: http://stackoverflow.com/questions/1398051/getting-the-history-of-an-object –

+1

Oder verwenden Sie Marty Alchins Audit-Trail: http://StackOverflow.com/questions/818823/django-audittrail-vs-reversion –

Antwort

9

django-reversion ist eine App entwickelt, um dabei zu helfen.

+0

Ich habe diese Lösung nicht wirklich benutzt, aber kannst du tatsächlich ein Changelog von django-reversion bekommen? +1 sowieso, weil ich denke, dass es immer noch Oli's Bedürfnisse befriedigen könnte. –

+0

Dies ist bei weitem die einfachste Methode. Es hat erstaunliche und sehr pythonische Methoden, um Änderungen zu verfolgen, die perfekt zu meinem Stil passen. Ich bin sicher, ich werde einen Weg finden, die Liste der Änderungen zu extrahieren! – Oli

+0

werfen Sie einen Blick auf admin.py history_view –

Verwandte Themen