Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menapis Objek Pertanyaan Django mengikut Julat Tarikh?

Bagaimana untuk Menapis Objek Pertanyaan Django mengikut Julat Tarikh?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 00:27:03356semak imbas

How to Filter Django Query Objects by Date Range?

Menapis Objek Pertanyaan Django mengikut Julat Tarikh

Apabila bekerja dengan model Django, menapis objek pertanyaan mengikut julat tarikh ialah tugas biasa. Untuk mencapai matlamat ini, anda boleh menggunakan fungsi julat tarikh terbina dalam Django.

Mari kita pertimbangkan model yang serupa dengan yang dinyatakan dalam soalan:

<code class="python">class Sample(models.Model):
    date = fields.DateField(auto_now=False)</code>

Andaikan anda perlu menapis objek yang termasuk dalam julat tarikh tertentu, seperti yang mempunyai tarikh antara 1 Januari 2011 dan 31 Januari 2011. Begini cara anda boleh melakukannya:

<code class="python">Sample.objects.filter(date__range=["2011-01-01", "2011-01-31"])</code>

Pertanyaan ini menggunakan carian __julat untuk menentukan tarikh julat di mana medan tarikh objek Sampel harus jatuh.

Sebagai alternatif, jika anda ingin menapis objek mengikut bulan, anda boleh menggunakan sintaks berikut:

<code class="python">Sample.objects.filter(date__year='2011', date__month='01')</code>

Pertanyaan ini menapis semua objek dengan tarikh pada Januari 2011.

Tidak Termasuk Julat Tamat

Perhatikan bahawa pertanyaan di atas termasuk julat berakhir (iaitu, 1 Januari dan 31 Januari 2011, dalam contoh pertama). Jika anda perlu mengecualikan hujung julat ini, anda boleh menggunakan carian __gt (lebih besar daripada) dan __lt (kurang daripada), seperti yang dicadangkan oleh Bernhard Vallant dalam suntingan jawapan:

<code class="python">Sample.objects.filter(date__gt="2011-01-01", date__lt="2011-01-31")</code>

Pertanyaan ini menapis semua objek dengan tarikh lebih besar daripada 1 Januari 2011 dan kurang daripada 31 Januari 2011, dengan berkesan tidak termasuk julat tamat.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Objek Pertanyaan Django mengikut Julat Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Olok-olok, apa itu?Artikel seterusnya:Olok-olok, apa itu?