1
0
mirror of https://github.com/django/django.git synced 2025-03-12 10:22:37 +00:00

[5.2.x] Fixed #36066 -- Documented that Q objects can be used directly in annotations.

Backport of 9120a19c4ecb643111b073dd1069e6b410a03c23 from main.
This commit is contained in:
samruddhiDharankar 2025-03-01 14:53:20 -08:00 committed by Sarah Boyce
parent 4c7b737b30
commit 930d9c2fd9
2 changed files with 9 additions and 4 deletions

View File

@ -916,6 +916,7 @@ answer newbie questions, and generally made Django that much better:
Sachin Jat <sanch.jat@gmail.com>
Sage M. Abdullah <https://github.com/laymonage>
Sam Newman <http://www.magpiebrain.com/>
Samruddhi Dharankar <sdharank@ics.uci.edu>
Sander Dijkhuis <sander.dijkhuis@gmail.com>
Sanket Saurav <sanketsaurav@gmail.com>
Sanyam Khurana <sanyam.khurana01@gmail.com>

View File

@ -258,10 +258,14 @@ you can use :class:`Q objects <django.db.models.Q>` (``*args``).
.. method:: annotate(*args, **kwargs)
Annotates each object in the ``QuerySet`` with the provided list of :doc:`query
expressions </ref/models/expressions>`. An expression may be a simple value, a
reference to a field on the model (or any related models), or an aggregate
expression (averages, sums, etc.) that has been computed over the objects that
are related to the objects in the ``QuerySet``.
expressions </ref/models/expressions>` or :class:`~django.db.models.Q` objects.
Each object can be annotated with:
* a simple value, via ``Value()``;
* a reference to a field on the model (or any related models), via ``F()``;
* a boolean, via ``Q()``; or
* a result from an aggregate expression (averages, sums, etc.) computed over
the objects that are related to the objects in the ``QuerySet``.
Each argument to ``annotate()`` is an annotation that will be added
to each object in the ``QuerySet`` that is returned.