[英]SELECT on JSONField with Django
我的应用程序严重依赖API,这些API会意外地更改它们返回数据的方式。 因此,我选择在Django中使用PSQL和JSONFields。
我已经看到了很多有关如何按JSONField中的值进行过滤的示例/文档,但是我还没有看到任何允许我对这些值进行SELECT的示例/文档。
我所知道的有效;
queryset.filter(jsonfield__key_name = 'value')
我想知道怎么做;
queryset.values('jsonfield__key_name')
提前致谢!
答案是RawSQL表达式。
queryset.annotate(value = RawSQL("(jsonfield->%s)", ('key_name',)))
queryset.values('value')
RawSQL
的第一个参数就像一个模板字符串,第二个参数将填充第一个的%s
更新:显然Django 2.1+现在支持我最初的预期行为;
queryset.values('jsonfield__key_name')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.