Anda dapat menyiasati "ketidakcocokan impedansi" yang disebabkan oleh kurangnya presisi dalam DateTimeField/date
perbandingan objek - yang dapat terjadi jika menggunakan rentang - dengan menggunakan datetime.timedelta untuk menambahkan hari ke tanggal terakhir dalam rentang. Ini berfungsi seperti:
start = date(2012, 12, 11)
end = date(2012, 12, 18)
new_end = end + datetime.timedelta(days=1)
ExampleModel.objects.filter(some_datetime_field__range=[start, new_end])
Seperti dibahas sebelumnya, tanpa melakukan sesuatu seperti ini, catatan diabaikan pada hari terakhir.
Diedit untuk menghindari penggunaan datetime.combine
- tampaknya lebih logis untuk tetap menggunakan instance date ketika membandingkan dengan DateTimeField
, bukannya mengotak-atik objek yang dibuang (dan membingungkan) datetime
. Lihat penjelasan lebih lanjut dalam komentar di bawah.