Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menapis Objek Django mengikut Julat Tarikh?

Bagaimana untuk Menapis Objek Django mengikut Julat Tarikh?

Susan Sarandon
Susan Sarandonasal
2024-11-04 12:53:29426semak imbas

How to Filter Django Objects by a Date Range?

Menapis Objek Pertanyaan mengikut Julat Tarikh dalam Django

Apabila bekerja dengan model Django yang mengandungi medan tarikh, ia sering menjadi perlu untuk menapis objek berdasarkan pada julat tarikh yang ditentukan. Ini membenarkan anda untuk mendapatkan semula objek yang berada dalam tempoh masa tertentu sahaja.

Masalah:

Pertimbangkan model berikut dengan medan tarikh:

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

Bagaimanakah anda boleh menapis objek model ini untuk hanya memasukkan objek yang mempunyai tarikh antara 1-Jan-2011 dan 31-Jan-2011?

Penyelesaian:

Untuk menapis objek mengikut julat tarikh, gunakan penapis julat dalam kombinasi dengan medan yang ingin anda tapis:

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

Alternatif untuk Penapisan Bulanan:

Jika anda hanya perlu menapis objek berdasarkan bulan, anda boleh menggunakan sintaks berikut:

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

Tidak Termasuk Julat Tamat:

Jika anda mahu kecualikan hujung julat yang ditentukan, pertimbangkan untuk menggunakan penapis gt (lebih besar daripada) dan lt (kurang daripada) seperti yang dicadangkan oleh Bernhard Vallant dalam suntingan:

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

Atas ialah kandungan terperinci Bagaimana untuk Menapis Objek 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