  
  * ``Model.__init__()`` now sets values of virtual fields from its keyword
    arguments.
  
  Requests and Responses
  ~~~~~~~~~~~~~~~~~~~~~~
  
  * Added ``request.user`` to the debug view.
 
</s> remove                 reconstruct_manager(model._default_manager)
 </s> add                 default_manager = copy.copy(model._default_manager)
                default_manager._set_creation_counter()

            # If the default manager doesn't have `use_in_migrations = True`,
            # shim a default manager so another manager isn't promoted in its
            # place. </s> remove def can_use_for_related_field(manager_class):
    return manager_class is Manager or getattr(manager_class, 'use_for_related_fields', False)


def ensure_default_manager(model):
    """
    Ensures that a Model subclass contains a default manager and sets the
    _default_manager and _base_manager attributes on the class.
    """

    if not model._meta.managers:
        if any(f.name == 'objects' for f in model._meta.fields):
            raise ValueError(
                "Model %s must specify a custom Manager, because it has a "
                "field named 'objects'" % model.__name__
            )
        model.add_to_class('objects', Manager())

    model._default_manager = model._meta.managers[0]

    # Just alias _base_manager if default manager is suitable.
    if can_use_for_related_field(model._default_manager.__class__):
        model._base_manager = model._default_manager

    # Otherwise search for a suitable manager type in the default manager MRO.
    else:
        for base_manager_class in model._default_manager.__class__.mro()[1:]:
            if can_use_for_related_field(base_manager_class):
                model._base_manager = base_manager_class()
                model._base_manager.name = '_base_manager'
                model._base_manager.model = model
                break
        else:
            raise ValueError("Could not find a suitable base manager.")


 </s> add  </s> remove 2. The default manager on a class is either the first manager declared on the
   class, if that exists, or the default manager of the first parent class in
   the parent hierarchy, if that exists. If no manager is explicitly declared,
   Django automatically creates the `objects` manager and it becomes the default
   manager.
 </s> add #. If no managers are declared on a model and/or its parents, Django
   automatically creates the ``objects`` manager.

#. The default manager on a class is either the one chosen with
   :attr:`Meta.default_manager_name
   <django.db.models.Options.default_manager_name>`, or the first manager
   declared on the model, or the default manager of the first parent model.
* The new :attr:`Meta.base_manager_name
  <django.db.models.Options.base_manager_name>` and
  :attr:`Meta.default_manager_name
  <django.db.models.Options.default_manager_name>` options allow controlling
  the :attr:`~django.db.models.Model._base_manager` and
  :attr:`~django.db.models.Model._default_manager`, respectively.

  
  * ``Model.__init__()`` now sets values of virtual fields from its keyword
    arguments.
  
* The new :attr:`Meta.base_manager_name
  <django.db.models.Options.base_manager_name>` and
  :attr:`Meta.default_manager_name
  <django.db.models.Options.default_manager_name>` options allow controlling
  the :attr:`~django.db.models.Model._base_manager` and
  :attr:`~django.db.models.Model._default_manager`, respectively.

  Requests and Responses
  ~~~~~~~~~~~~~~~~~~~~~~
  
  * Added ``request.user`` to the debug view.
keep keep keep add keep keep keep keep
 Fixed #10506, #13793, #14891, #25201 -- Introduced new APIs to specify models' default and base managers.

This deprecates use_for_related_fields.

Old API:

class CustomManager(models.Model):
    use_for_related_fields = True

class Model(models.Model):
    custom_manager = CustomManager()

New API:

class Model(models.Model):
    custom_manager = CustomManager()

    class Meta:
        base_manager_name = 'custom_manager'

Refs #20932, #25897.

Thanks Carl Meyer for the guidance throughout this work.
Thanks Tim Graham for writing the docs. 
docs/releases/1.10.txt