django SearchFilter不会过滤查询集列表,而是返回所有查询集

时间:2017-07-01 16:44:31

标签: django python-3.x django-rest-framework filtering

这是我的view views.py文件

class StudentList(generics.ListAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializer
#pagination_class = StudentPageNumberPagination
filter_backends = [SearchFilter]
search_fields=['name','mobile']

这是我的序列化程序类

class StudentSerializer(serializers.ModelSerializer):
class Meta:
    model=Student
    fields=('id','name','mobile','time','late','date')

这是我在浏览器中输入的内容

http://192.168.0.118:8000/students/?name=ket

我得到了数据库中的所有项目

1 个答案:

答案 0 :(得分:0)

如果您使用SearchFilter,您的搜索字符串必须在搜索参数中传递,如下所示: http://192.168.0.118:8000/students/?search=ket 您可以在docs中了解相关信息。如果要将查询参数拆分为特定字段,可以使用DjangoFilterBackend而不是SearchFilter。