1

我有一个简单的模型,例如:

class MyModel(models.Model):
    data = JSONField()

JSONFielddata的结构如下:

{
  "name": "Brian",
  "skills": [
     {"id": 4, "name": "First aid"},
     {"id": 5, "name": "Second aid"}
  ]
}

我想创建一个查询,获取由内部数据过滤的 MyModelsid列表skill

我在这里尝试了几种不同的途径,并且可以在 Python 中完成这项工作,但我很确定在 Django 中有一种方法可以做到这一点;我认为我的 SQL 不够好,无法弄清楚。

提前喝彩。

4

1 回答 1

1

尝试这个

>>> MyModel.objects.filter(data__skills__contains=[{'id':4}, {'id':5}])

有关 JSON 过滤器的更多信息https://docs.djangoproject.com/en/3.1/topics/db/queries/#querying-jsonfield

于 2021-02-16T11:08:25.380 回答