Browse Source

Fixed #34199 -- Added example to StringAgg docs.

sdolemelipone 2 years ago
parent
commit
344593893b
1 changed files with 26 additions and 0 deletions
  1. 26 0
      docs/ref/contrib/postgres/aggregates.txt

+ 26 - 0
docs/ref/contrib/postgres/aggregates.txt

@@ -208,6 +208,32 @@ General-purpose aggregation functions
 
         Examples are the same as for :attr:`ArrayAgg.ordering`.
 
+    Usage example::
+
+        class Publication(models.Model):
+            title = models.CharField(max_length=30)
+
+        class Article(models.Model):
+            headline = models.CharField(max_length=100)
+            publications = models.ManyToManyField(Publication)
+
+        >>> article = Article.objects.create(headline="NASA uses Python")
+        >>> article.publications.create(title="The Python Journal")
+        <Publication: Publication object (1)>
+        >>> article.publications.create(title="Science News")
+        <Publication: Publication object (2)>
+        >>> from django.contrib.postgres.aggregates import StringAgg
+        >>> Article.objects.annotate(
+        ...     publication_names=StringAgg(
+        ...         "publications__title",
+        ...         delimiter=", ",
+        ...         ordering="publications__title",
+        ...     )
+        ... ).values("headline", "publication_names")
+        <QuerySet [{
+            'headline': 'NASA uses Python', 'publication_names': 'Science News, The Python Journal'
+        }]>
+
     .. deprecated:: 4.0
 
         If there are no rows and ``default`` is not provided, ``StringAgg``