我已经将一些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。
答案 0 :(得分:1)
您可以使用字典扩展:
filtered_qs = queryset.filter(**{"data__properties__object:key": "some_value"})
答案 1 :(得分:0)
不,在这种情况下您无法逃脱结肠。
不过,您可以使用contains lookup获得相同的结果。
filtered_qs = queryset.filter(data__properties__contains={'object:key': 'some_value'})