2017-02-21 63 views
0

我的應用程序嚴重依賴於API,它們無法預料地改變其返回數據的方式。出於這個原因,我選擇在Django中使用PSQL和JSONFields。
我見過很多關於如何通過JSONField中的值進行過濾的示例/文檔,但我沒有看到任何允許我對這些值進行SELECT的示例/文檔。使用Django在JSONField上進行選擇

我所知道的工作;
queryset.filter(jsonfield__key_name = 'value')

我想知道該怎麼做;
queryset.values('jsonfield__key_name')

在此先感謝!

回答

2

答案是一個RawSQL表達式;
from django.db.models.expressions import RawSQL queryset.annotate(value = RawSQL("(jsonfield->%s)", ('key_name',))) queryset.values('value')
的第一個參數RawSQL就像一個模板字符串,第二個參數將填補第一的%s