2010-02-25 23 views
14

Podczas tworzenia lub modyfikowania instancji obiektu w administratorze Django tworzony jest wpis dziennika zmian. Jest to naprawdę przyjemne z dość oczywistych powodów.Śledzenie zmian instancji Django Model

Jednak instancje mojego modelu zostały utworzone przez zwykłego użytkownika spoza interfejsu administratora. Nie odnotowano żadnego dziennika zmian w celu odnotowania jego utworzenia (nie jest to duży problem), ale chciałbym śledzić zmiany wprowadzone przez użytkownika.

Chcę również wyświetlić użytkownikowi ten pełny dziennik (edycję użytkownika i administratora) w interfejsie, więc potrzebuję sposobu na wyciągnięcie dziennika zmian.

Moje pytanie: jak? Czy istnieje jednoliniowy przełącznik, który mogę przestawiać, aby włączyć pełne rejestrowanie, czy też muszę zagłębić się i zrobić coś w logice formularza użytkownika?

+2

Możesz użyć modelu dango admin LogEntry: http://stackoverflow.com/questions/1398051/getting-the-history-of-an-object –

+1

Lub użyj ścieżki audytu Marty'ego Alchina: http://stackoverflow.com/questions/818823/django-audittrail-vs-reversion –

Odpowiedz

9

django-reversion to aplikacja zaprojektowana do pomocy w tym zakresie.

+0

Nie korzystałem z tego rozwiązania, ale czy rzeczywiście można uzyskać listę zmian z django-reversion? +1 w każdym razie, ponieważ myślę, że nadal może spełnić potrzeby Oli. –

+0

Jest to zdecydowanie najprostsza metoda. Ma niesamowite i bardzo pytonowe metody wiązania się ze śledzeniem zmian, które idealnie pasują do mojego stylu. Jestem pewien, że znajdę sposób na wyodrębnienie listy zmian! – Oli

+0

zobacz admin.py history_view –