如何基于Django中的列使用键查询JSONField

如何基于Django中的列使用键查询JSONField,json,postgresql,django-models,Json,Postgresql,Django Models,我想使用Django ORM编写一个查询,它需要检查JSONField的键,但是,我想检查的键基于另一个模型的字段。是否有一种方法可以使用ORM表达此查询,而不必求助于原始SQL 这是我要使用的查询的修改版本,问题是statement.properties->>sf.name 选择cr.name, 萨姆凯斯 当statement.properties->sf.name=ANY时 字符串_到_arraysf.compliance_值,','然后是1 否则0结束为符合, 将*计为总数 来自声明 语句

我想使用Django ORM编写一个查询,它需要检查JSONField的键,但是,我想检查的键基于另一个模型的字段。是否有一种方法可以使用ORM表达此查询,而不必求助于原始SQL

这是我要使用的查询的修改版本,问题是statement.properties->>sf.name

选择cr.name, 萨姆凯斯 当statement.properties->sf.name=ANY时 字符串_到_arraysf.compliance_值,','然后是1 否则0结束为符合, 将*计为总数 来自声明 语句上的内部联接需求集rs.requirement\u set\u id=rs.id rs.compliance\u indicator\u field\u id=sf.id上的内部联接语句字段sf 按rs.id分组; 这些是我使用的模型的简化版本:

class语句FieldBaseModel: 始终是CSV 合规性\u值=文本字段 class语句BaseModel: properties=JSONField 需求集合=型号。外键 要求集, 相关的_name='statements', 在_delete=models.CASCADE上, 类别要求SetBaseModel: 合规性\指标\字段=models.ForeignKey 语句字段, 相关的需求集, on_delete=models.SET_NULL, Python中的等价物通常是:

陈述 .annotatecompliant=SumcaseWheenstation\uuuuuuuuuuuuuuuuuuuuu属性?=…,然后=1,输出=IntegerField .值'requirement_set','compliant' 但是我找不到表达JSON select表达式的方法

其他一些信息: 我正在使用PostgreSQL 9.6和Django 3.1.4