我已经将一些JSON元数据带入了一个JSONfield()
,一些键名称包括一个冒号。我是否能够转义字段查找,以便我可以执行类似以下示例的操作?
filtered_qs = queryset.filter(data__properties__object:key="some_value")
其中object:key
是我的 JSON 密钥的名称
目前我收到keyword cannot be an expression
语法错误。
我正在使用Postgres 11.2和Django 2.2.2。
您可以使用字典扩展:
filtered_qs = queryset.filter(**{"data__properties__object:key": "some_value"})
不,在这种情况下您无法转义冒号。
但是,您可以使用包含查找获得相同的结果。
filtered_qs = queryset.filter(data__properties__contains={'object:key': 'some_value'})