From ed0ff913c648b16c4471fc9a9441d1ee48cb5420 Mon Sep 17 00:00:00 2001 From: Loïc Bistuer Date: Sun, 17 Apr 2016 18:55:55 +0700 Subject: 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 | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'tests/basic') diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 6ff037a31a..a378961444 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -637,7 +637,7 @@ class SelectOnSaveTests(TestCase): # test this properly otherwise. Article's manager, because # proxy models use their parent model's _base_manager. - orig_class = Article._base_manager.__class__ + orig_class = Article._base_manager._queryset_class class FakeQuerySet(QuerySet): # Make sure the _update method below is in fact called. @@ -648,11 +648,8 @@ class SelectOnSaveTests(TestCase): 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 + Article._base_manager._queryset_class = FakeQuerySet asos = ArticleSelectOnSave.objects.create(pub_date=datetime.now()) with self.assertNumQueries(3): asos.save() @@ -665,7 +662,7 @@ class SelectOnSaveTests(TestCase): with self.assertRaises(DatabaseError): asos.save(update_fields=['pub_date']) finally: - Article._base_manager.__class__ = orig_class + Article._base_manager._queryset_class = orig_class class ModelRefreshTests(TestCase): -- cgit v1.3