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)

それでも同じエラーが発生します。

datetimes クエリに関する django docs のドキュメントを読みましたが、postgres pytz を使用する場合は不要であると書かれています。とにかくpytzをインストールして再試行しましたが、それでもエラーが発生しました。

USE_TZ を false に設定すると、クエリは正常に実行され、エラーは発生しません。

このエラーを報告する django Web サイトでこのチケットを見つけましたが、それが言及しているパッチの使用方法がわかりません。

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 に答える