Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menapis Objek Django mengikut Julat Tarikh?
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!