Bagaimana untuk Menapis Objek Django mengikut Julat Tarikh?

Susan Sarandon
Lepaskan: 2024-11-04 12:53:29
asal
498 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan