【问题标题】:No result found in django rest framework in filtering option在过滤选项中的 django rest 框架中没有找到结果
【发布时间】:2020-05-09 12:55:07
【问题描述】:

这是我的模型类:

class Product(models.Model):
    SKU    = models.IntegerField()
    price  = models.IntegerField()
    status = models.IntegerField()

序列化器是:

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
         model  = Product
         fields = '__all__'

在我看来,我使用此逻辑按状态和价格过滤产品。

   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
}

现在如何根据 filter 获取所有产品列表(索引)?我在哪里将过滤器值作为 JSON 提供,就像这样。

{

    "price": 200,
    "status": 2
}

它将根据价格== 200 和状态==2 进行过滤。 还有,我可以使用基于函数的视图来进行这种过滤吗???

【问题讨论】:

  • 试试这个 (serializers.ModelSerializer) 而不是 (serializers.Serializer)。

标签: django django-rest-framework filtering


【解决方案1】:

我认为这不能这样做

我强烈建议您使用 DRF通用视图django-filtersdjango-rest-framework 集成。

关注此Official Guide,将其与 DRF 集成。

【讨论】:

    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2012-12-24
    • 2017-05-27
    • 1970-01-01
    • 2014-02-17
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多