Hi Simon, In addition to what's documented, that's another way annotate() gives the wrong result.
There are a lot of duplicates of #10060, and there are a lot of people who run into this issue. Given the age of the ticket and the lack of a simple backward compatible solution, what would be the way forward? Maybe breaking changes? Or updating the docs to show a safe usage of annotate()? Or throwing an error? On Wednesday, January 5, 2022 at 7:44:11 PM UTC+3 charettes wrote: > While addressing the issue is complex and will require quite a bit of work > to solve in a backward-compatible way I believe that it should be feasible > to emit a MultipleMultiValuedJoin(RuntimeWarning) with pointers for > alternatives (e.g. using subqueries) without too much hassle when > aggregation is performed and more than one multi-valued relationship is > involved. > > The docs you pointed at mention the multiple aggregation problem but a > similar thing happens when filtering against a multi-valued relationship > after a single aggregation[0] so the problem can be generalized to any form > of aggregation on a query that joins more than one multi-valued > relationship (n-to-many). > > Simon > > [0] https://code.djangoproject.com/ticket/33403 > > > > Le mercredi 5 janvier 2022 à 09:59:24 UTC-5, Yonas a écrit : > >> In that case, at least there should be a warning message in the >> documentation. And what do you think of the example? Isn't it contradicting >> the documentation? >> >> On Wednesday, January 5, 2022 at 5:16:43 PM UTC+3 niccol...@gmail.com >> wrote: >> >>> I would be in favor of a real time information about the issue. >>> Il giorno mercoledì 5 gennaio 2022 alle 15:13:17 UTC+1 Yonas ha scritto: >>> >>>> Hello, >>>> >>>> There's a ticket <https://code.djangoproject.com/ticket/10060> opened >>>> 13 years ago explaining a problem with combining multiple aggregations >>>> with >>>> annotate(). And the solution appears to be documenting >>>> <https://docs.djangoproject.com/en/4.0/topics/db/aggregation/#combining-multiple-aggregations> >>>> the >>>> problem. >>>> >>>> But for people skimming through the documentation, the message might >>>> not be noticeable. Showing the problem in a warning message could help >>>> draw >>>> attention better. It's used here >>>> <https://docs.djangoproject.com/en/4.0/ref/settings/#static-root> and >>>> in other places in the doc. >>>> >>>> In addition to documenting the problem, raising an exception might >>>> prevent developers from spending hours trying to debug their code. >>>> >>>> While the problem is recognized, there's an example >>>> <https://docs.djangoproject.com/en/4.0/topics/db/aggregation/#joins-and-aggregates>in >>>> >>>> the documentation that shows the usage of multiple aggregations. >>>> >>> -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/4fec3010-2adf-4e1c-be85-4b66e9f20982n%40googlegroups.com.