我有一个名为产品的模型。 类别属于此模型。现在,我可以使用值过滤此部分字段。实际上我想为same field用multiple values
过滤示例:如果我使用电话(属于一个类别)进行过滤,则可以正常工作但是对于此部分字段,我需要按phone和case
进行过滤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
我该怎么做?有人可以帮我吗?
定义CharFilter
并指定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']
从django.db.models导入Q
如果您希望或您的条件。
queryset = User.objects.filter(Q(first_name__startswith ='R')| Q(姓氏__startswith ='D'))
如果您希望与您的条件相符。
queryset = User.objects.filter(Q(first_name__startswith ='R')和Q(last_name__startswith ='D'))