                  FakeQuerySet.called = True
                  super(FakeQuerySet, self)._update(*args, **kwargs)
                  return 0
  
          class FakeManager(orig_class):
              def get_queryset(self):
                  return FakeQuerySet(self.model)
          try:
              Article._base_manager.__class__ = FakeManager
              asos = ArticleSelectOnSave.objects.create(pub_date=datetime.now())
              with self.assertNumQueries(3):
                  asos.save()
 
</s> remove             Article._base_manager.__class__ = FakeManager
 </s> add             Article._base_manager._queryset_class = FakeQuerySet </s> remove             Article._base_manager.__class__ = orig_class
 </s> add             Article._base_manager._queryset_class = orig_class
                  FakeQuerySet.called = True
                  super(FakeQuerySet, self)._update(*args, **kwargs)
                  return 0
  



          try:
              Article._base_manager.__class__ = FakeManager
              asos = ArticleSelectOnSave.objects.create(pub_date=datetime.now())
              with self.assertNumQueries(3):
                  asos.save()
keep keep keep keep replace replace replace keep 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. 
tests/basic/tests.py