我使用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。
答案 0 :(得分:0)
升级到1.6.1或更高版本可以解决问题。得到了django用户google group的答案。