Django 1.11 uses the old manager inheritance system, unless it's
overwritten with manager_inheritance_from_future. With a class layout
like:
PolymorphicModel (abstract)
PolymorphicMPTTModel (abstract)
GenericCustomer (concrete, has objects = ...)
CustomerGroupBase (abstract, has objects = ...)
Partner (concrete, no manager)
BranchPartner (concrete, no manager)
The last level gets a normal Django Manager instead of the polymorphic
manager. Because the PolymorphicModel had a base_objects manager, this
was typically used as _default_manager. Now that the default manager is
no longer affected, it's also easier to detect why the "objects" doesn't
get the proper manager type. Using "manager_inheritance_from_future" is
recommended instead to have both the right behavior and forward
Django 2.x compatibility.
|
||
|---|---|---|
| .. | ||
| admin | ||
| contrib | ||
| formsets | ||
| locale | ||
| static/polymorphic | ||
| templates/admin/polymorphic | ||
| templatetags | ||
| tests | ||
| __init__.py | ||
| base.py | ||
| managers.py | ||
| models.py | ||
| query.py | ||
| query_translate.py | ||
| showfields.py | ||
| utils.py | ||