【发布时间】:2020-12-27 10:59:52
【问题描述】:
我需要过滤一些在字段中没有特定值的对象。我试着这样做:
MyModel.objects\
.filter(<some filters>)\
.exclude(json_field__has_key='some_field', json_field__some_field=True)
但是这段代码生成了错误的 SQL 查询:
...
AND NOT (
"my_model"."json_field" ? some_field AND
("my_model"."json_field" -> 'some_field') = 'true' AND
"my_model"."json_field" IS NOT NULL)
)
...
在第一行 some_field 没有使用 qoutes。我通过在字符串中添加单个 qoutes 来修复它:json_field__has_key="'some_field'" 但我认为这不是一个好的解决方案。
有谁知道它为什么会这样工作以及我应该如何解决它?
【问题讨论】:
-
这可能值得提高票数。
标签: python django postgresql