#32179: Add JSONObject Func -------------------------------------+------------------------------------- Reporter: | Owner: nobody Chiorufarewerin | Type: New | Status: new feature | Component: Database | Version: master layer (models, ORM) | Keywords: json_object, Severity: Normal | jsonb_build_object, JSONObject Triage Stage: | Has patch: 0 Unreviewed | Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | -------------------------------------+------------------------------------- So I currently use for build json object for postgres like:
{{{ Func( Value('name'), 'authors__name', Value('alias'), 'authors__alias', function='jsonb_build_object' ) }}} I checked other dbs formats for this, and all of this have that functional: https://www.sqlite.org/json1.html#jobj https://dev.mysql.com/doc/refman/8.0/en/json-creation-functions.html #function_json-object https://docs.oracle.com/en/database/oracle/oracle- database/12.2/sqlrf/JSON_OBJECT.html I use it for related objects, for example: {{{ class Article(models.Model): title = models.CharField(max_length=50) class Product(models.Model): article = models.ForeignKey(Article, related_name='products', on_delete=models.CASCADE) name = models.CharField(max_length=255) Product.objects.annotate( article_json=Func( Value('title'), 'article__title', function='JSONB_BUILD_OBJECT', ) ).values('name', 'article_json').first() }}} So, with JSONObject will be something like this: {{{ Product.objects.annotate( article_json=JSONObject( title='article__title', ) ).values('name', 'article_json').first() }}} -- Ticket URL: <https://code.djangoproject.com/ticket/32179> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/058.b5408975eb4c98ae635ba7f8ec258692%40djangoproject.com.