我想弄清楚如何使用從日期時間提取的日期過濾QuerySet。如何篩選日期時間字段上的日期,日期?
我使用Django-filter
,如果沒有迭代QuerySet,我就無法撰寫這樣的查找,這是非常無效的。我試過,這是行不通的。
class MyReservationsFilter(FilterSet):
datetime__lte = DateFilter(method='datetime_filter',name='lte')
class Meta:
model = Reservation
fields = {'status': ['exact'],
# 'datetime': ['lte', 'gte'],
'destination_from': ['exact'],
'destination_to': ['exact'],}
def datetime_filter(self, queryset, name, value):
lookup = 'datetime__'+name
return queryset.filter(**{lookup:value})
你知道該怎麼辦?
我不能使用datetime__lte/gte
因爲:
我有一個Reservation
對象R。
>> r.datetime
>> datetime.datetime(2017, 8, 31, 17, 55)
>> r.datetime.date()
>> datetime.date(2017, 8, 31)
所以現在我嘗試根據日期進行過濾:
Reservation.objects.filter(datetime__lte=datetime.date(2017, 8, 31),datetime__gte=datetime.date(2017, 8, 31))
>> []
這是因爲它看起來並不只在日期,但時間太。所以我需要提取日期才能正確過濾。