所以我们有一个值存储在我需要查询的 JSONB 列中。我像这样为它创建了一个索引
create index user_notification_policy_id on user_notification using btree (((extra->'policy_id')::int8));
如果查询的格式如此,则解释计划正在使用索引
("user_notification"."extra" -> 'policy_id')::text = '12345678');
我怎样才能让 Django 创建一个这样的 where 子句?我一直在尝试使用 extra
但没有运气
return self.extra(
where='("extra"->"policy_id")::int8 = %s',
params=[policy_id]
)
结果
E ValueError: unsupported format character ')' (0x29) at index 1061
Django 2.2.16
答案 0 :(得分:0)
我有额外的格式错误。它应该是一个数组
return self.extra(
where=['("extra"->\'policy_id\')::int8 = %s'],
params=[policy_id]
)