У меня есть очень простой фильтр, созданный с использованием DjangoBackendFilter и фильтра Ordering. Он работает со всеми параметрами запроса, такими как? Part_number = 12345, но когда дело доходит до поля id, он вообще не работает, т.е.? Id = 12345.
У меня еще нет фильтров списка, поэтому я не ожидаю, что несколько значений фильтра будут работать. Но я ожидаю, что каждое поле будет работать для ввода одного значения. Кажется странным, что только поле id не работает. Я также попытался использовать? Pk = 12345 в URL API, но он также ничего не фильтрует.
views.py
class PartList(generics.ListAPIView):
queryset = Part.objects.all()
serializer_class = PartSerializer
pagination_class = StandardResultsSetPagination
filter_fields = '__all__'
ordering = 'id'
pagers.py
class StandardResultsSetPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 1000
def get_paginated_response(self, data):
return Response({
'links': {
'next': self.get_next_link(),
'previous': self.get_previous_link()
},
'count': self.page.paginator.count,
'total_pages': self.page.paginator.num_pages,
'results': data
})
serializers.py
class PartSerializer(serializers.ModelSerializer):
class Meta:
model = Part
fields = '__all__'