如何查询 django JSON 字段中的特定字段

Posted

技术标签:

【中文标题】如何查询 django JSON 字段中的特定字段【英文标题】:How to query specific field in django JSON field 【发布时间】:2020-06-19 07:45:42 【问题描述】:

我有一个模型,它有一个名为 data 的 JSON 字段。我需要查询在这个data 字段中具有type 的所有模型,该字段以字符串gpa. 开头

对应的查询是:

select data ->> 'type' from model where data ->> 'type' like 'gpa.%'

如何使用查询集来做到这一点?我能找到的只是完全匹配,而不是开头。我正在使用 django 1.18

【问题讨论】:

【参考方案1】:

我假设您有数据 jsonfield,并且您正在搜索名为 type 以“gpa.”开头的键的值。您可以试试这个:

Model.objects.filter(data__type__startswith='gpa.')

【讨论】:

以上是关于如何查询 django JSON 字段中的特定字段的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django 模型中为模型字段定义 json 类型

如何访问 Django 中查询集的特定字段?

如何编写查询以在 django 的 json 字段中查找值

聚合石墨烯/django 查询中的字段

如何在不使用字段名的情况下运行 django orm 查询?

如何忽略 JSON 响应中列表中的特定字段