【发布时间】:2015-03-22 02:09:52
【问题描述】:
如果我需要在 django rest 中进行过滤,那么我通常会这样做
class ProductFilter(django_filters.FilterSet):
min_price = django_filters.NumberFilter(name="price", lookup_type='gte')
max_price = django_filters.NumberFilter(name="price", lookup_type='lte')
class Meta:
model = Product
fields = ['category', 'in_stock', 'min_price', 'max_price']
class ProductList(generics.ListAPIView):
queryset = Product.objects.all()
serializer_class = ProductSerializer
filter_class = ProductFilter
我可以像这样使用
http://example.com/api/products?category=clothing&max_price=10.00
但这会做AND
我怎样才能做到这一点或从 url 之类的
在哪里(category = clothing || max_price = 10)
基本上我应该能够在 URL 中提供所有参数,例如
http://example.com/api/products? AND=[{category: clothing}, {age: 10}], OR=[{age_gte:10}]
【问题讨论】:
标签: python django filtering django-rest-framework