繁体   English   中英

Django rest 框架 - 如何进行不区分大小写的视图集搜索

[英]Django rest framework - how to make case insensitive viewset search

如何在休息框架的视图集中启用不区分大小写的搜索?

例如,假设 Post 模型有一个标签。 下面的所有链接都应该找到相同的标签内容,现在它们区分大小写并尝试搜索不同的值:

  1. /posts/tag=AbcDef
  2. /帖子/标签= abcdef
  3. /posts/tag=AbcdeF

视图.py

class PostViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

假设您在Post模型中有名为tag 的字段,并且您的搜索 url 的格式为:

/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

您是否考虑过使用http://www.django-rest-framework.org/api-guide/filtering/#searchfilter 默认情况下不区分大小写搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM