Fixed #31342 -- Clarified docs about using base managers for related objects.

This commit is contained in:
Carlton Gibson 2020-03-05 16:04:06 +01:00 committed by Mariusz Felisiak
parent 7c8b043a03
commit 08a6215d33
1 changed files with 7 additions and 5 deletions

View File

@ -214,11 +214,13 @@ appropriate for your circumstances, you can tell Django which class to use by
setting :attr:`Meta.base_manager_name
<django.db.models.Options.base_manager_name>`.
Base managers aren't used when querying on related models. For example, if the
``Question`` model :ref:`from the tutorial <creating-models>` had a ``deleted``
field and a base manager that filters out instances with ``deleted=True``, a
queryset like ``Choice.objects.filter(question__name__startswith='What')``
would include choices related to deleted questions.
Base managers aren't used when querying on related models, or when
:ref:`accessing a one-to-many or many-to-many relationship
<backwards-related-objects>`. For example, if the ``Question`` model
:ref:`from the tutorial <creating-models>` had a ``deleted`` field and a base
manager that filters out instances with ``deleted=True``, a queryset like
``Choice.objects.filter(question__name__startswith='What')`` would include
choices related to deleted questions.
Don't filter away any results in this type of manager subclass
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~