Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
筛选器在Django Rest框架中不工作_Django_Filter_Django Rest Framework_Django Filter - Fatal编程技术网

筛选器在Django Rest框架中不工作

筛选器在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

我想过滤我的数据,就像假设我有一个模型=>

使用者 用户ID 用户名 用户描述 我想要的是=>

如果我选择like=>api/user/?userid=1,它应该只返回 userid==1结果。 如果我选择like=>api/user/?username=test,它应该返回 仅用户名==测试结果。 我做了什么

我安装了django过滤器并添加了这个

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']