【发布时间】:2017-04-12 12:44:10
【问题描述】:
有没有办法查询一个对象,从JSONField 字段中“提取”一段嵌套数据,然后将其作为每个查询集实例上的自定义临时字段提供?
在我的用例中,我将来自 Twitter 的 API 的溢出元数据存储在 data 字段中以供以后使用。我希望能够访问TwitterPost.data 内的嵌套字段followers_count。
我已阅读有关如何根据嵌套值进行过滤的文档,但没有阅读如何在生成查询集时将其提取为临时字段。
同样,我已阅读 annotate 文档以了解创建自定义临时字段的方法,但示例都在简单字段上使用聚合函数,因此不是 JSONFields。
提前感谢您的任何建议。
示例模型:
from django.contrib.postgres.fields import JSONField
class TwitterPost(models.Model):
id = models.IntegerField()
data = JSONField()
data 字段的示例 JSON 值:
{
'followers_count': 7172,
"default_profile_image": false,
"profile_text_color": "000000"
}
我想做的伪代码:
TwitterPost.objects.annotate(followers_count=instance.data.followers_count)
【问题讨论】:
标签: django postgresql