DRF SearchFilter固定字段值

时间:2017-07-11 08:38:58

标签: django django-rest-framework django-filter

您好我想问一下这个example中的searchfilter类。

class UserListView(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = (filters.SearchFilter,)
    search_fields = ('username', 'email')
     

这将允许客户端通过查询来过滤列表中的项目:

http://example.com/api/users?search=russell

现在我要做的是,例如向gender对象添加User字段并搜索过滤器,返回查询集中的所有男性。

就像这样search_fields = ('username', 'email', 'gender="male"') # of course this wont work

我们如何才能在searchFilter中获得这个东西?

1 个答案:

答案 0 :(得分:0)

我认为你应该使用filter_fields而不是搜索字段。

class UserListView(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = (filters.SearchFilter,filters.DjangoFilterBackend)
    search_fields = ('username', 'email')
    filter_fields = ('gender',)
  

URL:   http://example.com/api/users?gender=male&&search=russell