mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #21846 -- Made NestedObjects handle related_name with %(app_label)s or %(class)s.
This commit is contained in:
@@ -156,10 +156,14 @@ class NestedObjects(Collector):
|
||||
def add_edge(self, source, target):
|
||||
self.edges.setdefault(source, []).append(target)
|
||||
|
||||
def collect(self, objs, source_attr=None, **kwargs):
|
||||
def collect(self, objs, source=None, source_attr=None, **kwargs):
|
||||
for obj in objs:
|
||||
if source_attr:
|
||||
self.add_edge(getattr(obj, source_attr), obj)
|
||||
related_name = source_attr % {
|
||||
'class': source._meta.model_name,
|
||||
'app_label': source._meta.app_label,
|
||||
}
|
||||
self.add_edge(getattr(obj, related_name), obj)
|
||||
else:
|
||||
self.add_edge(None, obj)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user