Questo problema si è verificato a intermittenza per alcune settimane e non è diverso da nessuno che ha ideato il mio progetto.Django default = timezone.now() salva i record utilizzando l'ora "vecchia"
Due dei modelli utilizzati hanno un campo data/ora, che per impostazione predefinita è impostato su timezone.now()
.
Questa è la sequenza che solleva le bandiere di errore: una
modello è stato creato al momento 07:30
Modello due si crea al momento 10:00, ma nel database MySQL è archiviato come 7:30 PM!
Ogni modello che viene creato ha il suo timbro di tempo risparmiato in 19:30, non il tempo effettivo, fino a un certo durata passa. Poi un nuovo tempo viene impostato e tutti i seguenti modelli avere quel tempo nuovo ... Bizzare
alcuni dettagli in più che possono aiutare a scoprire il problema:
Ho un sacco di metodi che ho utilizzare per spogliare i miei fusi orari dei loro tzinfo
e sostituirli con UTC.
Questo perché sto facendo un calcolo timezone.now() - creationTime
per creare un: "modello è stato pubblicato questo molto tempo fa" funzione nel progetto. Tuttavia, questo in realtà non dovrebbe essere la causa del problema.
Non penso che usare datetime.datetime.now()
farà alcuna differenza.
In ogni caso, grazie per l'aiuto!
Scommetto che il problema "è corretto" per il primo record * dopo * il processo del server viene riavviato (e forse solo/tutti i nuovi record inseriti nello stesso minuto del riavvio del server). Si prega di mostrare il codice che utilizza/imposta/stabilisce questo valore predefinito. Sospetto che venga valutato solo * una volta * (quando viene creato il primo record) e non aggiornato per i record successivi. –
La tua previsione è corretta! Cosa ti fa pensare questo e perché dovrebbe succedere? –