Не найден результат в django rest framework в опции фильтрации - PullRequest
0 голосов
/ 23 января 2020

Вот мой класс модели:

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 для такого рода фильтрации ???

1 Ответ

1 голос
/ 23 января 2020

Я думаю, что это невозможно сделать таким образом

Я настоятельно рекомендую вам интегрировать django-filters с django-rest-framework, используя DRF Generi c Просмотры .

Follow This Официальное руководство , для интеграции его с DRF .

...