В Raw Queryset используйте ILIKE без учета регистра, чтобы проверить, начинается ли одно из полей с предопределенной буквы - PullRequest
0 голосов
/ 06 апреля 2019

Я использую необработанный набор запросов и, помимо прочего, проверяю, начинается ли имя с определенного символа.

Я использую ILIKE, чтобы не учитывать регистр символов:

qs = self.raw(
     f'''SELECT t.id, t.name, 
     ................
     WHERE t.is_active = true AND t.name ILIKE \'%s%\' ORDER BY name ASC''',
                params=[char])

Я получаю следующую ошибку:

tuple Index out of range

Я предполагаю, что это происходит из-за этого: ILIKE \'%s%\', побег неверен

1 Ответ

1 голос
/ 06 апреля 2019

Самое простое решение было бы добавить % в конце char:

qs = self.raw(
     '''SELECT t.id, t.name
     WHERE t.is_active = true AND t.name ILIKE %s ORDER BY name ASC''',
                params=[char + '%'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...