diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2014-01-22 00:25:33 +0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-01-22 09:13:15 -0500 |
| commit | c3fdeb28fff35573bf86ef04b234c7f5817b0dea (patch) | |
| tree | a68e305a73ef573585f3327b927f498f01ae7f02 /django | |
| parent | a5ec11c4bbb8f82e02871f154b3cfe0008b00a2b (diff) | |
Fixed #21846 -- Made NestedObjects handle related_name with %(app_label)s or %(class)s.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/utils.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index 4092b67c0e..0b74a6e75f 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -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: |
