筛选器在Django Rest框架中不工作
我想过滤我的数据,就像假设我有一个模型=> 使用者 用户ID 用户名 用户描述 我想要的是=> 如果我选择like=>api/user/?userid=1,它应该只返回 userid==1结果。 如果我选择like=>api/user/?username=test,它应该返回 仅用户名==测试结果。 我做了什么 我安装了django过滤器并添加了这个筛选器在Django Rest框架中不工作,django,filter,django-rest-framework,django-filter,Django,Filter,Django Rest Framework,Django Filter,我想过滤我的数据,就像假设我有一个模型=> 使用者 用户ID 用户名 用户描述 我想要的是=> 如果我选择like=>api/user/?userid=1,它应该只返回 userid==1结果。 如果我选择like=>api/user/?username=test,它应该返回 仅用户名==测试结果。 我做了什么 我安装了django过滤器并添加了这个 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_f
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}
设置为setting.py,我这样测试,但是
为什么我会得到我所有的记录?甚至URL也是仅选择userid=1 api/user/?userid=1
及
如果我使用错误的URL参数进行测试,并且我得到了所有记录,甚至是错误的参数
我用同样的方法处理这个=>
更新
这里是观景台
class LeaveViewSet(viewsets.ModelViewSet):
queryset = Leave.objects.all()
serializer_class = LeaveSerializer
您应该指定属性
class LeaveViewSet(viewsets.ModelViewSet):
queryset = Leave.objects.all()
serializer_class = LeaveSerializer
filterset_fields = ['user','other_fields']
因此,URL将成为,
api/user/?user\uuu id=1你能显示你的视图吗?@ArakkalAbu,请检查更新,这是一个很好的示例视图集。它应该按原样工作:检查URL结构好的,但假设模型中的字段名为EmpNo,但为什么我不能像filterset\u字段=['EmpNo']那样设置?区分大小写?是的。。。它是区分大小写的。您应该使用filterset_字段=['EmpNo']
filterset_fields = ['user__id','user__username']