Django annotate specific keys in json fields Django annotate specific keys in json fields postgresql postgresql

Django annotate specific keys in json fields


for Django >= 1.11, you can use:

from django.contrib.postgres.fields.jsonb import KeyTextTransformMyModel.objects.annotate(val=KeyTextTransform('key1', 'jsonfield')).order_by('val')


An updated answer for this question:

At current time of writing (Django 3.1), you can now order exactly as you had hoped without needing any helper functions:

MyModel.objects.order_by('jsonfield__key1')