Starting with Django 1.11, you can use django.contrib.postgres.fields.jsonb.KeyTextTransformRawSQL
from django.contrib.postgres.fields.jsonb import KeyTextTransform
qs = RatebookEntry.objects.all()
qs = qs.annotate(manufacturer_name=KeyTextTransform('manufacturer_name', 'data'))
qs = qs.order_by('manufacturer_name')
qs = qs.order_by('-manufacturer_name')
In Django 1.10, you have to subclass KeyTransformyourself:
from django.contrib.postgres.fields.jsonb import KeyTransform
class KeyTextTransform(KeyTransform):
operator = '->>'
nested_operator = '#>>'
_output_field = TextField()
: KeyTransform KeyTextTransform , KeyTransform JSON- , KeyTextTransform .
, data {"test": "stuff"}, KeyTextTransform 'stuff', KeyTransform '"stuff"' ( json.loads)