首页 > 解决方案 > 使用 Django REST 框架 SearchFilter 解码(和等同)特殊字符?

问题描述

我在后端实现了一个 Django Rest Framework SearchFilter,它在大多数情况下都能正常工作。这是views.py中的代码结构:

class JobsViewSet(viewsets.ModelViewSet):
    queryset = Jobs.objects.all()
    serializer_class = JobSerializer
    filter_backends = [filters.SearchFilter]
    search_fields = ['^name', '^job_type']

唯一剩下的问题是,当发送带有特殊字符的 get 请求时,例如瑞典字母 å,Django 无法识别 å 与 Å 仅在小写时是相同的字母(例如 a 和 A) . 在来自前端的 GET 调用中,å 转换为小写的 %C3%A5 和大写的 %C3%85。

如果职位名称以大写字母开头(如Återvinning中) ,这将导致搜索框找不到以字母åäö开头的职位。有谁知道使过滤器理解并等同于特殊字符的大写和小写字母的解决方案?类似于 UTF-8 解码的东西?

我在REST framework 文档和 Stack Overflow 上都在寻找答案,但没有任何运气。

顺便说一句,Stack Overflow 的新手,我希望我的格式正确!

标签: pythondjangodjango-rest-framework

解决方案


推荐阅读