我正在尝试创建一个自定义字段,该字段会自动将 COLLATE 信息添加到 SQL 查询的 WHERE 部分:
class IgnoreDiacriticsField(models.TextField):
def get_prep_lookup(self, lookup_type, value):
if lookup_type == 'exact':
return ' "' + self.get_prep_value(value) + '" COLLATE utf8_general_ci'
当我执行这样的查询时:
result = ModelClass.objects.filter(field='value')
然后什么也找不到,即使查询 (print result.query) 是有效的并且匹配了几行。难道我做错了什么?
我添加排序规则信息的原因是我想对这些字段执行查询并忽略任何变音符号。