参考官方文档:
将价格自定义成为区间查找
1、filter文件如下:
2、views文件写法:
3、
3、效果如下:
详细代码:
from django_filters import rest_framework
from .models import Goods
class GoodsFilter(rest_framework.FilterSet):
min_price = rest_framework.NumberFilter(name="shop_price", lookup_expr='gte', help_text="最低价格")
max_price = rest_framework.NumberFilter(name="shop_price", lookup_expr='lte', help_text="最高价格")
class Meta:
model = Goods
fields = ['name', 'goods_sn', 'min_price', 'max_price']
from django_filters.rest_framework import DjangoFilterBackend # 过滤
class GoodsListDetailViewSet(viewsets.ReadOnlyModelViewSet):
"""商品列表页, 详细页"""
queryset = Goods.objects.all()
serializer_class = GoodsSerializer
pagination_class = GoodsPagination
filter_backends = (DjangoFilterBackend,) # 过滤配置
filter_class = GoodsFilter # 导入fitlters.py 中的类实现