Browse Source

Refs #35444 -- Deprecated contrib.postgres.OrderableAggMixin.

This commit does not create any functional changes, but marks the
existing `OrderableAggMixin` class as deprecated so that developers
using it directly can be made aware of its future removal.
Chris Muthig 7 months ago
parent
commit
1759c1dbd1

+ 9 - 1
django/contrib/postgres/aggregates/mixins.py

@@ -1,6 +1,7 @@
+# RemovedInDjango70Warning: When the deprecation ends, remove completely.
 import warnings
 
-from django.utils.deprecation import RemovedInDjango61Warning
+from django.utils.deprecation import RemovedInDjango61Warning, RemovedInDjango70Warning
 
 
 # RemovedInDjango61Warning.
@@ -19,10 +20,17 @@ class _DeprecatedOrdering:
         super().__init__(*expressions, order_by=order_by, **extra)
 
 
+# RemovedInDjango70Warning.
 # RemovedInDjango61Warning: When the deprecation ends, replace with:
 # class OrderableAggMixin:
 class OrderableAggMixin(_DeprecatedOrdering):
     allow_order_by = True
 
     def __init_subclass__(cls, /, *args, **kwargs):
+        warnings.warn(
+            "OrderableAggMixin is deprecated. Use Aggregate and allow_order_by "
+            "instead.",
+            category=RemovedInDjango70Warning,
+            stacklevel=1,
+        )
         super().__init_subclass__(*args, **kwargs)

+ 3 - 0
docs/internals/deprecation.txt

@@ -20,6 +20,9 @@ details on these changes.
 
 * The ``django.contrib.postgres.aggregates.StringAgg`` class will be removed.
 
+* The ``django.contrib.postgres.aggregates.mixins.OrderableAggMixin`` class
+  will be removed.
+
 .. _deprecation-removed-in-6.1:
 
 6.1

+ 3 - 0
docs/releases/6.0.txt

@@ -301,6 +301,9 @@ Miscellaneous
 * The PostgreSQL ``StringAgg`` class is deprecated in favor of the generally
   available :class:`~django.db.models.StringAgg` class.
 
+* The PostgreSQL ``OrderableAggMixin`` is deprecated in favor of the
+  ``order_by`` attribute now available on the ``Aggregate`` class.
+
 Features removed in 6.0
 =======================