答えはRawSQL式です。
queryset.annotate(value = RawSQL("(jsonfield->%s)", ('key_name',)))
queryset.values('value')
RawSQL
の最初の引数 テンプレート文字列のようなもので、2番目の引数は最初の%s
を埋めます
更新:どうやらDjango 2.1+は、私の当初の期待される動作をサポートするようになりました;
queryset.values('jsonfield__key_name')