【发布时间】:2020-05-25 06:43:46
【问题描述】:
我正在尝试在 Django DRF 视图集上添加日期过滤器
models.py:
class Day(models.Model):
date = models.DateField(unique=True)
...
在视图中,我添加了如下过滤器集:
class DateFilter(filters.FilterSet):
month = filters.DateFilter(field_name='date__month', lookup_expr='exact')
class Meta:
model = Day
fields = ['month']
我也尝试定义月份过滤器,但同样的错误如下:
month = filters.DateFilter(field_name='date', lookup_expr='month')
并在视图集中添加:
class DayViewSet( mixins.ListModelMixin, mixins.RetrieveModelMixin, GenericViewSet):
queryset = Day.objects.all().order_by('-date')
serializer_class = DaySummarySerializer
lookup_field = 'slug'
filter_backends = [filters.DjangoFilterBackend]
filterset_class = DateFilter
过滤器按预期显示在其余框架页面中,但不接受将月份作为整数传递并返回以下错误。
我知道直接在查询集中添加这些过滤器是可能的解决方法,但是是否可以使用 django-filters 库来实现此类过滤器?
【问题讨论】:
标签: django-rest-framework django-filter