首页 > 解决方案 > 如何过滤一组值的字段

问题描述

我有一个名为products的模型。该类别属于该模型。现在我可以用一个值过滤这个部分字段。其实我想为同一个字段按多个值过滤

示例:如果我用电话过滤(是一个类别)它可以工作但是对于这个部分字段,我需要按电话案例过滤

筛选

class ProductFilter(filters.FilterSet):
    min_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    max_price = filters.NumberFilter(field_name="price", lookup_expr='lte')

    class Meta:
        model = Product
        fields = ['category',
                  'min_price', 'max_price'
                  ]

看法

class ProductListView(generics.ListAPIView):
    permission_classes = [IsAuthenticated]
    queryset = Product.objects.all()
    serializer_class = ProductListSerializer
    filter_backends = (filters.DjangoFilterBackend,)
    filter_class = ProductFilter

我怎么做?有人能帮我吗?

标签: djangopython-3.xdjango-rest-frameworkserialization

解决方案


定义 aCharFilter并指定lookup_expr参数,

class ProductFilter(filters.FilterSet):
    min_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    max_price = filters.NumberFilter(field_name="price", lookup_expr='lte')
    category = filters.CharFilter(lookup_expr='in')

    class Meta:
        model = Product
        fields = ['category', 'min_price', 'max_price']

推荐阅读