Вот мой класс модели:
class Product(models.Model):
SKU = models.IntegerField()
price = models.IntegerField()
status = models.IntegerField()
И сериализаторы:
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = '__all__'
На мой взгляд, я использовал эту логику c для фильтрации Продукта по статусу и цене.
class ProductFilter(filters.FilterSet):
class Meta:
model = Product
fields = {
'status': ['icontains'],
'price': ['iexact', 'lte', 'gte'],
}
@api_view(['POST'])
def productview(request):
queryset = Product.objects.all()
serializer_class = ProductSerializer
filterset_class = ProductFilter
serializer = serializer_class()
return Response(serializer.data)
Это дает такой вывод
{
"SKU": null,
"price": null,
"status": null
}
Теперь, как я могу получить весь список продуктов (индекс) в соответствии с фильтром ? Где я даю значение фильтра как JSON, как это.
{
"price": 200,
"status": 2
}
Будет фильтроваться по цене == 200 и состоянию == 2. А также, могу ли я использовать представление на основе функции view для такого рода фильтрации ???