mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #26413 -- Fixed a regression with abstract model inheritance and explicit parent links.
Thanks Trac alias trkjgrdg for the report and Tim for investigation and review.
This commit is contained in:
@@ -244,13 +244,21 @@ class ModelBase(type):
|
||||
field = None
|
||||
new_class._meta.parents[base] = field
|
||||
else:
|
||||
base_parents = base._meta.parents.copy()
|
||||
|
||||
# .. and abstract ones.
|
||||
for field in parent_fields:
|
||||
new_field = copy.deepcopy(field)
|
||||
new_class.add_to_class(field.name, new_field)
|
||||
# Replace parent links defined on this base by the new
|
||||
# field as it will be appropriately resolved if required.
|
||||
if field.one_to_one:
|
||||
for parent, parent_link in base_parents.items():
|
||||
if field == parent_link:
|
||||
base_parents[parent] = new_field
|
||||
|
||||
# Pass any non-abstract parent classes onto child.
|
||||
new_class._meta.parents.update(base._meta.parents)
|
||||
new_class._meta.parents.update(base_parents)
|
||||
|
||||
# Inherit managers from the abstract base classes.
|
||||
new_class.copy_managers(base._meta.abstract_managers)
|
||||
|
||||
Reference in New Issue
Block a user