Django default = timezone.now () zapisuje rekordy w „starym” czasie
Ten problem pojawia się od kilku tygodni i nie przypomina żadnego z moich projektów.
Dwa używane modele mają pole znacznika czasu, które domyślnie jest ustawione natimezone.now()
.
Jest to sekwencja, która wywołuje flagi błędów:
Model pierwszy jest tworzony o godzinie 19:30
Model drugi jest tworzony o godzinie 22:00, ale w bazie danych MySQL jest przechowywany jako 19:30!
Każdy utworzony model ma znacznik czasu zapisany poniżej godziny 19:30, a nie rzeczywisty czas, aż do upływu określonego czasu. Następnie ustawia się nowy czas i wszystkie poniższe modele mają ten nowy czas ... Bizzare
Dodatkowe informacje, które mogą pomóc w odkryciu problemu:
Mam kilka metod, których używam, aby usunąć moje strefy czasowetzinfo
i zastąp je UTC.
To dlatego, że robiętimezone.now() - creationTime
obliczenie, aby utworzyć: „model został opublikowany tak dawno temu” w projekcie. Jednak to nie powinno być przyczyną problemu.
Nie sądzę, że używamdatetime.datetime.now()
zrobi także różnicę.
W każdym razie dzięki za pomoc!