我遇到了經典的DateTimeField received a naive datetime while time zone support is active
警告扭曲。當我運行使用由factory_boy
提供的工廠的測試時發生錯誤。這裏是一家工廠的例子:日期時間字段收到天真的日期時間
from django.utils.timezone import now
import factory
class PostFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Post
value = 42
created = now()
正如你所看到的,我使用的是從Django的時區的現在()方法,它應該照顧整個天真的日期時間的事情,但事實並非如此。這裏的模型是什麼樣子:
class Post(models.Model)
value = models.IntegerField()
created = models.DateTimeField(auto_now_add=True)
而且,在我的settings.py文件,我已經設置USE_TZ = True
。
我試過安裝pytz
並使用它的庫創建一個日期時間對象來填充工廠中的字段,但這也不起作用。
我知道我可以壓制警告,但它已經開始咬我在代碼的其他領域,我想深究一下。 。 。
['dutnow()'如果USE_TZ = True,則返回一個已知對象](https://docs.djangoproject.com/zh/dev/ref/utils/#django.utils.timezone.now) – jfs
我知道。這就是爲什麼我被我得到的錯誤困惑,因爲我使用d.u.t.now()來填充DateTimeField。 – user1427661
你確定這部分代碼給你警告嗎? – Rohan