in settings.py ho:
USE_TZ = True
TIME_ZONE = "UTC"
e in model.py:
class Game(models.Model):
id = models.AutoField(primary_key=True)
creation_timestamp = models.DateTimeField(default=lambda: timezone.localtime(timezone.now()))
localtime è impostato in base al fuso orario dell'utente utilizzando un middleware e in questo caso è "Europa / Roma" (quindi +0200).
Quando creo una nuova istanza di gioco usando l'admin di Django, creation_timestamp viene automaticamente impostato su 2014-04-11 12:46:59+02
all'interno del modulo di input visualizzato all'interno della pagina, ma quando salvo e controllo il database che ottengo 2014-04-11 12:46:59+02
che non è quello che mi aspetto dal momento che, secondo la documentazione, Django dovrebbe trasmettere tutti i timestamp all'UTC prima di salvare. (Controllo i dati del database usando pgAdmin, non l'amministratore di Django).
Ho sbagliato?
risposte:
0 per risposta № 1È possibile impostare il fuso orario dei parametri del client PostgreSQL su UTC. oppure impostarlo su postgresql.conf, quindi ricaricare o inviare il segnale SIGHUP al pid postmaster. fuso orario usare exp:
digoal=# set timezone="UTC";
SET
digoal=# select now();
now
-------------------------------
2014-04-11 13:53:12.903336+00
(1 row)
digoal=# set timezone="PRC";
SET
digoal=# select now();
now
-------------------------------
2014-04-11 21:53:24.239343+08
(1 row)