これについては私自身混乱していましたが、解決したと思います:-DI は、範囲ルックアップ オプションに関するドキュメントが非常に役立つことを発見しました。
あなたがするとき:
YourModel.objects.filter(datetime_published__year='2008',
datetime_published__month='03',
datetime_published__day='27')
SQL は次のようになります。
SELECT ... WHERE EXTRACT('year' FROM pub_date) = '2008'
AND EXTRACT('month' FROM pub_date) = '03'
AND EXTRACT('day' FROM pub_date) = '27';
一方、ジャンゴの一般的な日付ベースのビューのこの部分:
{'date_time_field__range': (datetime.datetime.combine(date, datetime.time.min),
datetime.datetime.combine(date, datetime.time.max))}
次のようになります。
YourModel.objects.filter(datetime_published__range=(
datetime.datetime.combine('2008-03-27',datetime.time.min),
datetime.datetime.combine('2008-03-27',datetime.time.max)
)
次の行に沿ってSQLを生成します。
SELECT ... WHERE datetime_published BETWEEN '2008-03-27 00:00:00'
AND '2008-03-27 23:59:59';
(最後の SQL の例のタイムスタンプの形式は明らかに間違っていますが、理解できます)
それがあなたの質問に答えることを願っています:)