          with self.assertNumQueries(1):
              self.assertEqual(th.child_set.count(), 0)
  
      def test_related_object(self):
          public_school = School.objects.create(is_public=True)
          public_student = Student.objects.create(school=public_school)
  
 
</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             Article._base_manager.__class__ = orig_class
 </s> add             Article._base_manager._queryset_class = orig_class
    @ignore_warnings(category=RemovedInDjango20Warning)  # for use_for_related_fields deprecation
          with self.assertNumQueries(1):
              self.assertEqual(th.child_set.count(), 0)
  
    @ignore_warnings(category=RemovedInDjango20Warning)  # for use_for_related_fields deprecation
      def test_related_object(self):
          public_school = School.objects.create(is_public=True)
          public_student = Student.objects.create(school=public_school)
  
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. 
tests/many_to_one/tests.py