Django クエリ オブジェクトを日付範囲でフィルタリングする方法

Patricia Arquette
リリース: 2024-11-04 00:27:03
オリジナル
279 人が閲覧しました

How to Filter Django Query Objects by Date Range?

日付範囲による Django クエリ オブジェクトのフィルタリング

Django モデルを使用する場合、日付範囲によるクエリ オブジェクトのフィルタリングは一般的なタスクです。これを実現するには、Django の組み込みの日付範囲機能を利用できます。

質問で述べたモデルと同様のモデルを考えてみましょう。

<code class="python">class Sample(models.Model):
    date = fields.DateField(auto_now=False)</code>
ログイン後にコピー

次のようなオブジェクトをフィルタリングする必要があるとします。 2011 年 1 月 1 日から 2011 年 1 月 31 日までの日付など、特定の日付範囲内にあるものを指定します。その方法は次のとおりです。

<code class="python">Sample.objects.filter(date__range=["2011-01-01", "2011-01-31"])</code>
ログイン後にコピー

このクエリは __range ルックアップを使用して日付を指定します。サンプル オブジェクトの日付フィールドが該当する範囲。

または、月ごとにオブジェクトをフィルタリングする場合は、次の構文を使用できます。

<code class="python">Sample.objects.filter(date__year='2011', date__month='01')</code>
ログイン後にコピー

このクエリはすべてをフィルタリングします。

範囲終了を除く

上記のクエリには範囲終了 (つまり、2011 年 1 月 1 日と 1 月 31 日) が含まれることに注意してください。最初の例)。これらの範囲の端を除外する必要がある場合は、回答の編集で Bernhard Vallant によって提案されているように、__gt (大なり) および __lt (小なり) ルックアップを使用できます:

<code class="python">Sample.objects.filter(date__gt="2011-01-01", date__lt="2011-01-31")</code>
ログイン後にコピー

このクエリはフィルターします日付が 2011 年 1 月 1 日よりも大きく、2011 年 1 月 31 日よりも小さいすべてのオブジェクト。実質的に範囲終了は除外されます。

以上がDjango クエリ オブジェクトを日付範囲でフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!