diff options
| author | Tim Graham <timograham@gmail.com> | 2015-10-29 17:38:05 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-10-30 10:36:51 -0400 |
| commit | 5adeb410253dcba2215dd8274255a6dd897f14d1 (patch) | |
| tree | f98836c90cf321b86f6c334b39cf1444b4a1e96b | |
| parent | 052bd3f7e3be28d77ca9031b31f473dd721c1eb1 (diff) | |
[1.8.x] Fixed #24019 -- Fixed inaccurate docs about GenericRelation not supporting aggregation.
This works at least as far back as Django 1.6 according to the test
added in refs #10870.
Backport of e19bd086d608c981098130a49e406de91dcc3d26 from master
| -rw-r--r-- | docs/ref/contrib/contenttypes.txt | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index 16f1e9a600..298606e8de 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -475,18 +475,12 @@ signal. Generic relations and aggregation --------------------------------- -:doc:`Django's database aggregation API </topics/db/aggregation>` -doesn't work with a +:doc:`Django's database aggregation API </topics/db/aggregation>` works with a :class:`~django.contrib.contenttypes.fields.GenericRelation`. For example, you -might be tempted to try something like:: +can find out how many tags all the bookmarks have:: - Bookmark.objects.aggregate(Count('tags')) - -This will not work correctly, however. The generic relation adds extra filters -to the queryset to ensure the correct content type, but the -:meth:`~django.db.models.query.QuerySet.aggregate` method doesn't take them -into account. For now, if you need aggregates on generic relations, you'll -need to calculate them without using the aggregation API. + >>> Bookmark.objects.aggregate(Count('tags')) + {'tags__count': 3} .. module:: django.contrib.contenttypes.forms |
