Я пытаюсь создать настраиваемое поле, которое бы автоматически добавляло информацию COLLATE в часть WHERE SQL-запроса:
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) действителен и соответствует нескольким строкам. Я что-то не так делаю?
Причина, по которой я добавляю информацию о сопоставлении, заключается в том, что я хочу выполнять запросы к этим полям и игнорировать любые диакритические знаки.