使用Django 1.4我有一個DateTimeField字段的模型。我導入了django.utils.timezone作爲默認值。django.utils.timezone返回天真日期?
from django.utils import timezone
date = models.DateTimeField(default=timezone.now)
但是我仍然收到有關DateTimeField收到天真日期的警告。 我已經設置USE_TZ爲true,所以它應該返回知道日期時間
使用Django 1.4我有一個DateTimeField字段的模型。我導入了django.utils.timezone作爲默認值。django.utils.timezone返回天真日期?
from django.utils import timezone
date = models.DateTimeField(default=timezone.now)
但是我仍然收到有關DateTimeField收到天真日期的警告。 我已經設置USE_TZ爲true,所以它應該返回知道日期時間
Django的投入默認日期值未TZ知道,因爲在默認情況下未啓用場可爲空。設置爲null爲true意味着它只是設置的日期,而不是空,因此警告心不是提出:
date = models.DateTimeField(default=timezone.now, null=True)
now()
返回表示當前時間點 時
USE_TZ
是True
或False
分別感知或天真的日期時間。
https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.now
我已經將USE_TZ設置爲true,所以它應該返回意識日期時間 – mobiletim 2012-04-06 06:23:13
我知道這是側步的問題,但你在你的領域嘗試auto_now_add=True
呢?無需使用default
你想要的東西。
另一方面,您的版本應該工作以及如果你確實USE_TZ=True
。
我想說它可以工作,並且您從某處直接設置date
字段而不是從默認設置中獲得RunTimeWarning
。嘗試縮小什麼時候更準確地觸發警告。
就我而言,我一直接受這個問題,當我跑測試。這是因爲過去的遷移錯誤地使用了日期時間而不是時區。我恢復到遷移的前一個引起警告,刪除了它,又跑makemigrations。這解決了我的問題。
我可能是無知的,但我不明白是什麼null有用timezone.now()做天真。如果Null = True,那麼.now()會返回一個感知對象? – AllTradesJack 2014-08-19 00:46:33
django輸入的默認值不是時區知道 – mobiletim 2014-12-21 13:27:08
@mobiletim我仍然有點困惑,爲什麼要設置'null = True'使錯誤消失? – 2016-06-02 13:50:41