Clarify docs around usage of as_manager() #407

This commit is contained in:
Brian Kohan 2025-12-10 12:57:06 -08:00
parent 6f8f0d3df6
commit 7a9cfe1f70
No known key found for this signature in database
GPG Key ID: ACE0570056AB4C38
2 changed files with 25 additions and 0 deletions

View File

@ -88,3 +88,23 @@ Django's :class:`~django.db.models.query.QuerySet` as the base class:
class MyModel(PolymorphicModel):
my_objects = PolymorphicManager.from_queryset(MyQuerySet)()
...
If you do not wish to extend from a custom :class:`~polymorphic.managers.PolymorphicManager` you
may also prefer the :meth:`~polymorphic.managers.PolymorphicQuerySet.as_manager`
shortcut:
.. code-block:: python
from polymorphic.models import PolymorphicModel
from polymorphic.query import PolymorphicQuerySet
class MyQuerySet(PolymorphicQuerySet):
def my_queryset_method(self):
...
class MyModel(PolymorphicModel):
my_objects = MyQuerySet.as_manager()
...
For further discussion see `this topic on the Q&A page
<https://github.com/jazzband/django-polymorphic/discussions/696#discussioncomment-15223661>`_.

View File

@ -136,6 +136,11 @@ class PolymorphicQuerySet(QuerySet):
return new
def as_manager(cls):
"""
Override base :meth:`~django.db.models.query.QuerySet.as_manager` to return
a manager extended from :class:`polymorphic.managers.PolymorphicManager`.
"""
from .managers import PolymorphicManager
manager = PolymorphicManager.from_queryset(cls)()