如何在Django的字段查询中转义冒号?

时间:2019-08-12 05:27:34

标签: django

我已经将一些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。

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'})