1
0
mirror of https://github.com/django/django.git synced 2024-12-27 03:25:58 +00:00

[5.0.x] Refs #34808 -- Doc'd that aggregation functions on empty groups can return None.

Backport of 78b5c90753 from main
This commit is contained in:
David Sanders 2023-09-20 23:58:23 +10:00 committed by Natalia
parent 6db8e46e47
commit fb5dd118e9

View File

@ -3845,14 +3845,15 @@ documentation to learn how to create your aggregates.
currently emulates these features using a text field. Attempts to use
aggregation on date/time fields in SQLite will raise ``NotSupportedError``.
.. admonition:: Empty queryset
.. admonition:: Empty querysets or groups
Aggregation functions return ``None`` when used with an empty
``QuerySet``. For example, the ``Sum`` aggregation function returns ``None``
instead of ``0`` if the ``QuerySet`` contains no entries. To return another
value instead, pass a value to the ``default`` argument. An exception is
``Count``, which does return ``0`` if the ``QuerySet`` is empty. ``Count``
does not support the ``default`` argument.
Aggregation functions return ``None`` when used with an empty ``QuerySet``
or group. For example, the ``Sum`` aggregation function returns ``None``
instead of ``0`` if the ``QuerySet`` contains no entries or for any empty
group in a non-empty ``QuerySet``. To return another value instead, define
the ``default`` argument. ``Count`` is an exception to this behavior; it
returns ``0`` if the ``QuerySet`` is empty since ``Count`` does not support
the ``default`` argument.
All aggregates have the following parameters in common: