[英]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.