データベースとして 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)
それでも同じエラーが発生します。
datetimes クエリに関する django docs のドキュメントを読みましたが、postgres pytz を使用する場合は不要であると書かれています。とにかくpytzをインストールして再試行しましたが、それでもエラーが発生しました。
USE_TZ を false に設定すると、クエリは正常に実行され、エラーは発生しません。
このエラーを報告する django Web サイトでこのチケットを見つけましたが、それが言及しているパッチの使用方法がわかりません。
https://code.djangoproject.com/ticket/21432
USE_TZ=True でエラーなしでクエリを実行する方法を教えてください。