Ich habe die Schritte Erstinstallation durchgeführt und die ersten Revisionen erstellt, aber dann, wenn ich ein Modell in Django speichere Shell, die neue Revision wird nicht erstellt:
%Vor%Dies ist die erste Revision.
Wenn ich das Modell aus einer Ansicht aktualisiere, wird eine Revision erfolgreich erstellt.
Was vermisse ich?
Die Datei models.py lautet:
%Vor% Ich sehe eine Umkehrmethode unter post_save
receiver, obwohl sie beim Debuggen nicht aufgerufen wird.
Ich habe Django v1.4.1, Reversion v1.6.2.
Ich habe Django-Reversion geschrieben, also denke ich, dass ich etwas Licht in dieses Thema bringen kann.
Eine Version eines Modells wird automatisch gespeichert, wenn ein Modell gespeichert wird, sofern Folgendes zutrifft:
Punkt 1 kann entweder durch Registrieren eines Modells mit VersionAdmin
oder durch explizites Aufrufen von reversion.register()
in Ihrer models.py-Datei erreicht werden.
Punkt 2 kann mithilfe von RevisionMiddleware
oder reversion.create_revision()
decorator oder context manager erreicht werden. Alle Admin-Ansichten in VersionAdmin
speichern auch eine Revision.
Wenn also Ihre Shell keine Versionen erstellt, wird entweder Punkt 1 oder Punkt 2 nicht erfüllt. Hier ist, wie Sie es beheben können:
reversion.register()
in Ihrer models.py-Datei auf. reversion.create_revision()
-Kontextmanager, um Ihren Aufruf zu speichern. Mehr zu dieser Art von Dingen auf der Wiki-Seite der Low Level API:
Tags und Links django django-models django-reversion