sql >> Database teknologi >  >> RDS >> PostgreSQL

SELECT på JSONField med Django

Svaret er et RawSQL-udtryk;

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

Det første argument til RawSQL er som en skabelonstreng, vil det andet argument udfylde det førstes %s

OPDATERING:tilsyneladende understøtter Django 2.1+ nu min oprindelige forventede adfærd;

queryset.values('jsonfield__key_name') 


  1. Hvordan kan jeg markere en tabel skrivebeskyttet?

  2. sql-tabel med primærnøgle fra en anden tabel

  3. SQL Server:hvordan man vælger et fast antal rækker (vælg hver x-te værdi)

  4. Forbind MySQL med Python 3.6