Configuration: Plusieurs sites sur Django sur le même ensemble de serveurs, étant servis par le même groupe de processus Apache. Certains sites sont TZ Est; certains sont centraux. La base de données est PSQL fonctionnant sur un serveur séparé. Quand j'ai commencé, je n'ai pas beaucoup réfléchi à la façon dont les différents sites géreraient les fuseaux horaires; Je suppose que j'ai vu le réglage de TIMEZONE dans Django et je me suis dit que ça allait le gérer. Maintenant, je vois les fissures.Django Timezone Confusion; Postgres et Apache
Premier problème: Le fuseau horaire semble osciller entre Eastern et Central. Ma compréhension de cela à partir de la recherche sur ce site est que c'est parce que l'environnement var est réglé sur le processus Apache en fonction du site Django pour lequel il traite une requête, et si ce processus traite une requête sur un autre site TZ, le fuseau horaire est faux. Je crois que la solution que j'ai trouvée ici était que les sites de différents fuseaux horaires doivent avoir différents groupes de processus les servant. S'il vous plaît corriger si mal.
Deuxième problème: Localement sous Linux, j'ai exécuté un ./manage.py runserver à partir de l'un de mes sites avec l'heure centrale (je suis dans l'Est). J'ai créé un actif, dont la date de publication s'affichait correctement en une heure dans l'admin. En regardant l'entrée PostgresSQL réelle, le fuseau horaire de la date de publication est toujours répertorié comme -04. Est-ce que Postgres utilise simplement le fuseau horaire du serveur/ordinateur lui-même et ignore tout paramètre TZ dans Django? Ainsi, toutes les entrées enregistrées sur un serveur Postgres à l'heure de l'Est afficheraient -04 ou -05 en fonction de l'heure d'été?
Si quelqu'un d'autre a traité quelque chose comme ceci, des conseils sont appréciés. Même si je divise les processus Apache pour les sites centraux de sorte que leurs paramètres TZ ne se croisent pas, j'ai toujours le problème Postgres à traiter. Et puis je suis curieux; si l'horodatage PSQL est Central et que le paramètre TZ est Eastern, par exemple, les champs datetime prennent-ils en compte TZ? Par exemple, si vous utilisez datetime.datetime.now() lorsque Django est défini sur EST, et qu'il est renvoyé à 14h00, le contenu du filtre est moins élevé que le résultat de la publication. Vous recherchez du contenu dont l'heure de publication était 13h00 HNC ou plus tôt?