python - 尽管正确的数据库排序和使用了图标,Django 返回区分大小写的结果
问题描述
我有以下 DRF 视图:
class DictionaryFuzzyView(generics.ListAPIView):
queryset = Dictionary.objects.filter(disabled=False,).order_by(Length('simplified').asc())
serializer_class = FuzzySerializer
filter_backends = (filters.DjangoFilterBackend, OrderingFilter)
pagination_class = LimitOffsetPagination
ordering_fields = ['id']
filter_class = FuzzyFilter
FuzzyFilter 看起来像这样:
class FuzzyFilter(filters.FilterSet):
simplified = filters.CharFilter(field_name='simplified', lookup_expr='contains')
traditional = filters.CharFilter(field_name='traditional', lookup_expr='contains')
pinyin_marks = filters.CharFilter(field_name='pinyin_marks', lookup_expr='contains')
translation = filters.CharFilter(field_name='translation', lookup_expr='icontains')
frequency = filters.CharFilter(field_name='frequency', lookup_expr='exact')
hsk = NumberInFilter(field_name='level', lookup_expr='in')
我做了这样的电话:
http://127.0.0.1:8000/api/v1/fuzzy/?translation=One
我只会得到包含“一”的结果,绝不会得到包含“一”的结果,反之亦然。
我使用 MySQL 作为我的数据库引擎,但据我所知,我的排序规则对于不区分大小写的搜索是正确的:
我在 Django 3.x 上。
什么可能导致它/解决/排除故障的最佳方法是什么?
解决方案
我将特定字段翻译设置为二进制。
当我取消选中它时,它按预期工作。
推荐阅读
- kubernetes - Kubernetes ConfigMap 中的常用配置
- azure - Azure VM RDP 出站 NSG 规则
- python - 有没有办法在袖扣库 python 的子图中标准化轴的比例?
- windows - 如何在主机文件中为虚拟主机设置 IP 范围
- c# - 某些窗口的 Windows 桌面坐标系已关闭
- javascript - 使用 jQuery 2 与使用 jQuery 3 或 Vanilla JS 的组件行为不同
- html - bootstrap-下拉菜单在移动设备上不起作用
- arrays - MongoDB - 如何根据数组中的第一个元素提取记录
- python - YouTube 数据 API 评论问题
- matlab - 一个和内的范数的微分