Django default = timezone.now () speichert Datensätze mit "alter" Zeit
Dieses Problem tritt seit einigen Wochen immer wieder auf, und es ist mit keinem vergleichbar, das mit meinem Projekt einhergegangen ist.
Zwei der verwendeten Modelle verfügen über ein Zeitstempelfeld, das standardmäßig auf festgelegt isttimezone.now()
.
Dies ist die Sequenz, die Fehlerflags auslöst:
Das erste Modell wird um 19:30 Uhr erstellt
Modell zwei wird um 22:00 Uhr erstellt, aber in der MySQL-Datenbank wird es um 19:30 Uhr gespeichert!
Bei jedem erstellten Modell wird der Zeitstempel unter 19:30 Uhr und nicht die tatsächliche Zeit gespeichert, bis eine bestimmte Dauer verstrichen ist. Dann wird eine neue Zeit eingestellt und alle folgenden Modelle haben diese neue Zeit ... Bizzare
Einige zusätzliche Details, die bei der Aufdeckung des Problems hilfreich sein können:
Ich habe eine Reihe von Methoden, mit denen ich meine Zeitzonen entkleidetzinfo
's und ersetze sie mit UTC.
Das liegt daran, dass ich a machetimezone.now() - creationTime
Berechnung zum Erstellen eines: "Modell wurde vor langer Zeit gepostet" -Features im Projekt. Dies sollte jedoch nicht die Ursache des Problems sein.
Ich denke nicht mitdatetime.datetime.now()
wird auch keinen Unterschied machen.
Trotzdem danke für die Hilfe!