我正在经历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时区中的now()方法,它应该处理整个天真的日期时间,但事实并非如此.这是模型的样子:
class Post(models.Model) value = models.IntegerField() created = models.DateTimeField(auto_now_add=True)
另外,在我的settings.py文件中,我已设置USE_TZ = True
.
我已经尝试安装pytz
和使用它的库来创建一个datetime对象来填充工厂中的字段,但这也不起作用.
我知道我可以压制警告,但它已经开始在代码的其他方面咬我了,我想深究它...