J'utilise django 1.4.1 avec MySQL et Timezones activés. J'ai fait des données de dépôt sur YAML, modifiées certains champs pour créer des données de test et essayer de le charger. Cependant, Django continue de se plaindre des quêtes naïques, même si un TZ est spécifié
spécifiquement, mon LoadData a: < / p> mais loaddata donne l'erreur: p> Cela ne m'est pas favorable, voyant que c'est: < / p> existe une façon de dire à Django ceci est une date UTC? p> p>
4 Réponses :
du docs ...
Lors de la sérialisation d'une date d'heure consciente, le décalage UTC est inclus, comme Ceci: p>
created_date: '2012-09-15T22:17:44Z'
Cette solution n'a pas fonctionné pour moi. Changer dans le luminaire YAML par ex. "2019-01-05 01: 05: 45.754264 + 00: 00" à "2019-01-05T01: 05: 45.754264 + 00: 00" ou "2019-01-05T01: 05: 45 + 00: 00" donne des avertissements.
Le problème provient de Pyyaml. Lorsque LOADDATA interne la dateTime à Pyyaml, il prend la dateTime consciente, ajuste l'heure à UTC, puis renvoie une date d'heure naïve, qui génère l'avertissement. P>
Il y a un django billet , ainsi qu'un Billet Pyyaml concernant le problème. Les deux vont de plus en détail sur le comportement inattendu ci-dessus. À en juger par les commentaires dans les billets, cette question semble peu probable d'être résolue à tout moment. P>
est défini Le meilleur moyen d'éviter que cela consiste à utiliser JSON comme format de sérialisation. P>
espère que cela aide. p> time_zone = 'uc' code> dans Paramètres.py de votre projet, vous vous chargerez de la bonne heure, mais vous obtiendrez toujours des avertissements. Si votre fusil de fuseau horaire doit être défini sur autre chose, Django traitera la dateTime comme local et l'ajustera à l'UTC, qui est probablement indésirable. P>
Vous pouvez copier Django / Core / Serializers / Pyyaml.py à votre projet Dir,
et remplacez le code suivant (peut-être 78-79 lignes dans le cas de ver.1.9.9) à p> PYTZ déjà installé et p> est nécessaire. p> Ce code convertira toutes les valeurs naïfs DateTime en UTC au courant. p> Pour remplacer par défaut Serializer, Ajout Serialization_Modules dans Paramètres.Py:
P> P>
Je voulais continuer à utiliser Yaml au lieu des luminaires JSON afin que je puisse avoir des commentaires dans les données. La solution de contournement d'ici fixe le problème pour moi: https://code.djangoproject.com/ticket/18867 < / a> p>
nommément changeant manuellement le luminaire YAML afin qu'il: p>
... et apparemment, cela déclenche l'horodatage de Django à analyser la logique au lieu de la logique pyyaml cassée. P>