Django:当USE_TZ为True时,DateTimeQuery对象没有属性tzinfo

时间:2014-01-10 11:48:09

标签: django django-models django-timezone

我使用postgres作为我的数据库。我有一个名为Invoice的模型,带有日期时间字段。运行查询时出错:

Invoice.objects.datetimes('date_field','day')

错误是:

AttributeError: 'DateTimeQuery' object has no attribute 'tzinfo'

当我的设置文件中的USE_TZ设置设置为True时会发生这种情况。

日期时间查询需要一个tzinfo对象,如果不是,则使用默认的tzinfo对象,即utc。我尝试从django.utils.timezone导入utc tzinfo对象,并在查询中使用它,如下所示:

from django.utils.timezone import utc
Invoice.objects.datetimes('date_field','day', tzinfo=utc)

即使这样,我也会遇到同样的错误。

我已经阅读了关于日期时间查询的django文档的文档,它说当使用postgres pytz时不需要。但是无论如何我安装了pytz并再次尝试但仍然出错。

当我将USE_TZ设置为false时,查询运行正常并且没有错误。

我在django网站上发现了这张票,但是我不知道如何使用它所说的补丁。

https://code.djangoproject.com/ticket/21432

有人可以告诉我如何在没有错误的情况下运行查询USE_TZ = True。

1 个答案:

答案 0 :(得分:0)

升级到1.6.1或更高版本可以解决问题。得到了django用户google group的答案。