Джанго фильтр не фильтрует

Я пытаюсь отфильтровать результаты своего API с помощью параметров URL, но это не работает должным образом. что мне не хватает в моем коде? даже в DateRangeFilter он не фильтруется. Спасибо!

class RainfallFilter(filters.FilterSet):
    start_date = DateFilter(field_name='date', lookup_expr=('gt'))
    end_date = DateFilter(field_name='date', lookup_expr=('lt'))
    date_range = DateRangeFilter(field_name='timestamp')

    class Meta:
        model = Rainfall
        fields = ('level', 'amount', 'timestamp')


class RainfallView(generics.ListCreateAPIView):
    serializer_class = RainfallSerializer
    queryset = Rainfall.objects.all()
    filterset_class = RainfallFilter

    def get(self, request, *args, **kwargs):
        queryset = self.get_queryset()
        serializer = RainfallSerializer(queryset, many=True)
        return Response(serializer.data)

person Junely    schedule 26.01.2021    source источник


Ответы (1)


Поскольку в методе get, который вы переопределили выше, отсутствует фильтрация. Должен быть:

def get(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())
        serializer = RainfallSerializer(queryset, many=True)
        return Response(serializer.data)
person Vu Phan    schedule 26.01.2021