sql >> Databasteknik >  >> RDS >> PostgreSQL

SELECT på JSONField med Django

Svaret är ett RawSQL-uttryck;

queryset.annotate(value = RawSQL("(jsonfield->%s)", ('key_name',)))
queryset.values('value')

Det första argumentet till RawSQL är som en mallsträng, kommer det andra argumentet att fylla i det förstas %s

UPPDATERING:tydligen stöder Django 2.1+ nu mitt ursprungliga förväntade beteende;

queryset.values('jsonfield__key_name') 


  1. Optimistisk låskö

  2. Radexpansion via * stöds inte här

  3. Bästa metoder för att optimera LAMP-webbplatser för hastighet?

  4. MySQL tillåter inte ON UPDATE CURRENT_TIMESTAMP för ett DATETIME-fält