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!