我使用的是原始查询集,除此之外,我还要检查名称是否以特定字符开头。
为了区分大小写,我使用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%\'
,转义是错误的
答案 0 :(得分:1)
最简单的解决方案是在%
的末尾添加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 + '%'])