0

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

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

错误是:

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

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

datetimes 查询需要一个 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 运行查询而不出错。

4

1 回答 1

0

升级到 1.6.1 或更高版本可以解决问题。从 django users google group 得到答案。

于 2014-01-14T15:19:31.340 回答