Я использую Django, Django REST Framework плюс django-фильтры (alex/django-filter).daterange на django-filter
У меня есть модель с полями start_date и end_date, и я пытаюсь создать дату api-endpoint, которая должна получать дату и отвечать на элементы где (start_date < date) и (end_date> date). Существует фильтр диапазона дат (https://django-filter.readthedocs.org/en/latest/ref/filters.html#daterangefilter), но я не могу понять, как его использовать. Вот мой код до сих пор:
urls.py:
url(r'^api/sales/$', views.SaleItemList.as_view(), name='sales'),
views.py:
class SaleItemFilter(django_filters.FilterSet):
city = django_filters.CharFilter(name='trade_item__vendor__city')
title = django_filters.CharFilter(name='trade_item__title')
date = django_filters.DateRangeFilter()
class Meta:
model = SaleItem
fields = ['sale_price', 'sale_date_start', 'sale_date_end', 'trade_item']
class SaleItemList(generics.ListAPIView):
queryset = SaleItem.objects.all()
serializer_class = SaleItemListSerializer
filter_class = SaleItemFilter
serializers.py:
class SaleItemListSerializer(serializers.ModelSerializer):
class Meta:
model = SaleItem
fields = ("sale_price", "sale_date_start", "sale_date_end", "trade_item", "slogan")
Я могу фильтровать точные даты до сих пор:
/api/sales /? sale _date_start = 2015-05-22
Как вы можете получить две коробки для каждой даты вместо 1? –