【问题标题】:Django getting values from postgres JSON fieldDjango 从 postgres JSON 字段中获取值
【发布时间】:2021-02-16 10:56:50
【问题描述】:

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

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

JSONField data 的结构如下:

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

我想创建一个查询,获取由数据中 skillid 过滤的 MyModels 列表。

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

提前干杯。

【问题讨论】:

    标签: python django postgresql jsonfield


    【解决方案1】:

    试试这个

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多