diff --git a/docs/managers.rst b/docs/managers.rst index d27a3f7..5886f65 100644 --- a/docs/managers.rst +++ b/docs/managers.rst @@ -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 +`_. \ No newline at end of file diff --git a/src/polymorphic/query.py b/src/polymorphic/query.py index e2416ba..6e8b2d7 100644 --- a/src/polymorphic/query.py +++ b/src/polymorphic/query.py @@ -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)()