      def __str__(self):
          return self.name
  
  
  class RestrictedManager(models.Manager):
      def get_queryset(self):
          return super(RestrictedManager, self).get_queryset().filter(is_public=True)
  
  
 
</s> remove         class FakeManager(orig_class):
            def get_queryset(self):
                return FakeQuerySet(self.model)
 </s> add  </s> remove             Article._base_manager.__class__ = FakeManager
 </s> add             Article._base_manager._queryset_class = FakeQuerySet </s> remove             self.rel.related_model._default_manager.__class__,
 </s> add             related_model._default_manager.__class__, </s> remove         model = self.rel.related_model if self.reverse else self.rel.model
 </s> add         related_model = self.rel.related_model if self.reverse else self.rel.model

class FastCarAsBase(Car):
    class Meta:
        proxy = True
        base_manager_name = 'fast_cars'


class FastCarAsDefault(Car):
    class Meta:
        proxy = True
        default_manager_name = 'fast_cars'


      def __str__(self):
          return self.name
  
  
class FastCarAsBase(Car):
    class Meta:
        proxy = True
        base_manager_name = 'fast_cars'


class FastCarAsDefault(Car):
    class Meta:
        proxy = True
        default_manager_name = 'fast_cars'


  class RestrictedManager(models.Manager):
      def get_queryset(self):
          return super(RestrictedManager, self).get_queryset().filter(is_public=True)
  
  
keep keep keep add 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/custom_managers/models.py