Django admin后台页面管理搜索输中文报错解决办法

Made By ZLY All Right Reversed

1.问题展示

django django.db.utils.InternalError: (1271, “Illegal mix of collations for operation ‘like’”)

在这里插入图片描述

2.解决方案

django 在使用admin搜索功能时,输入中文提示错误,因为search_fields包含了date、tdate、datetime、timestamp类型的字段在select查询时使用like ‘%中文%’ 会出现错误类型,而这个mysql版本不支持like ‘中文’,所以要修改为like binary

直接打开开发环境中的django配置

cd  ~/。virtualenv/Django/lib/python3.8/site-packages/django/db/backends/mysql
sudo vim base.py

找到operators,在icontains后面的like添加 BINARY

operators = {
         'exact': '= %s',
         'iexact': 'LIKE %s',
         'contains': 'LIKE BINARY %s',
         'icontains': 'LIKE BINARY %s',
         'gt': '> %s',
         'gte': '>= %s',
         'lt': '< %s',
         'lte': '<= %s',
         'startswith': 'LIKE BINARY %s',
         'endswith': 'LIKE BINARY %s',
         'istartswith': 'LIKE %s',
         'iendswith': 'LIKE %s',
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值