from django.db import models
class CustomManager(models.Manager):
use_for_related_fields = True
class ExtraManager(models.Manager): use_for_related_fields = True
class AnotherManager(models.Manager): use_for_related_fields = True
class A(models.Model):
objects = CustomManager()
all_objects = AnotherManager()
class Meta: abstract = True
class B(A): pass
class C(A): objects = ExtraManager()
class D(C): pass
class E(A): all_objects = AnotherManager() objects = ExtraManager()
class F(E): pass
In [1]: from app.models import *
In [2]: F.objectsOut[2]: <django.db.models.manager.Manager at 0x7f160dfe8e48>
In [3]: D.objectsOut[3]: <app.models.ExtraManager at 0x7f160dfe80b8>
In [4]: D._default_managerOut[4]: <app.models.AnotherManager at 0x7f160dfe8978>
In [5]: F._deF._default_manager F._deferred
In [5]: F._default_managerOut[5]: <django.db.models.manager.Manager at 0x7f160dfe8e48>
In [6]: F.all_objectsOut[6]: <app.models.AnotherManager at 0x7f160dfe87f0>