【发布时间】:2019-11-21 00:20:42
【问题描述】:
给定一个结构为字典列表的 Django JSONField:
# JSONField "materials" on MyModel:
[
{"some_id": 123, "someprop": "foo"},
{"some_id": 456, "someprop": "bar"},
{"some_id": 789, "someprop": "baz"},
]
并给出要查找的值列表:
myids = [123, 789]
我想在这些字典列表中的任何位置查询具有匹配 some_id 的所有 MyModel 实例。我可以这样做一次在字典中搜索一个:
# Search inside the third dictionary in each list:
MyModel.objects.filter(materials__2__some_id__in=myids)
但我似乎无法构造一个查询来一次在所有字典中搜索。这可能吗?
【问题讨论】:
-
“2”从何而来?
-
2 表示“在每个 MyModel 实例的 JSONField 列表中的第三个字典中搜索。问题是如何消除 2 并在每个列表的所有字典中搜索。