2021-03-10

DRF框架之Filtering过滤查询

###我们用drf框架时,如何在不改动queryset(查询集)的情况下,增加一个过滤字段呢?
比如,一个表有下列字段:
【id,name,age,sex】
如果增加一个接口,获取所有年龄为12的数据
可以使用 django-filter模块
先下载

pip install django-filter

在INSTALLED_APPS中注册

INSTALLED_APPS = [
    ...
    'django_filters',
    ...
]

然后添加一下配置

REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}

最后在视图类中添加一下需要过滤的字段

class UserList(generics.ListAPIView):
    queryset = User.objects.all()  
    serializer_class = UserSerializer
    filterset_fields = ['age']    #   age:过滤字段

参数是在查询字符串中查询,例:

127.0.0.0:8000/user/?age=12

感觉就是在List方法里,加了一个过滤,而且URL地址也是一样的

官方文档
https://www.django-rest-framework.org/api-guide/filtering/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值