mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[1.10.x] Fixed #19222 -- Documented that default managers aren't used for related queries.
Backport of 8fb53c50ce from master
			
			
This commit is contained in:
		| @@ -204,7 +204,7 @@ Using managers for related object access | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| By default, Django uses an instance of the ``Model._base_manager`` manager | ||||
| class when accessing related objects (i.e. ``choice.poll``), not the | ||||
| class when accessing related objects (i.e. ``choice.question``), not the | ||||
| ``_default_manager`` on the related object. This is because Django needs to be | ||||
| able to retrieve the related object, even if it would otherwise be filtered out | ||||
| (and hence be inaccessible) by the default manager. | ||||
| @@ -214,6 +214,12 @@ 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>`. | ||||
|  | ||||
| Manager's 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. | ||||
|  | ||||
| Don't filter away any results in this type of manager subclass | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user