如何在rest框架的viewsets中启用不区分大小写的搜索?
例如,假设Post模型有标签。下面的所有链接都应该找到相同的标记内容,现在它们区分大小写并尝试搜索不同的值:
views.py
class PostViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
答案 0 :(得分:5)
假设您在帖子模型中有名为标记的字段,并且您的搜索网址格式为:
/posts/?tag=AbcDef
您可以执行区分大小写搜索,例如:
class PostViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = PostSerializer
def get_queryset(self):
keyword = self.request.query_params.get('tag', '')
queryset = Post.objects.filter(tag__iexact=keyword)
return queryset
答案 1 :(得分:4)
您是否考虑过使用http://www.django-rest-framework.org/api-guide/filtering/#searchfilter?这样做默认情况下不区分大小写。