Introspect proxy's parent only it is a model

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-07-12 04:48:00 -04:00
parent 1ddd5f26b1
commit 058e36b4a9

View File

@@ -378,14 +378,15 @@ class Menu(object):
if type(resolved_navigation_object) == bound_source: if type(resolved_navigation_object) == bound_source:
# Check to see if object is a proxy model. If it is, add its parent model # Check to see if object is a proxy model. If it is, add its parent model
# menu links too. # menu links too.
parent_model = resolved_navigation_object._meta.proxy_for_model if hasattr(resolved_navigation_object, '_meta'):
if parent_model: parent_model = resolved_navigation_object._meta.proxy_for_model
parent_instance = parent_model.objects.filter(pk=resolved_navigation_object.pk) if parent_model:
if parent_instance: parent_instance = parent_model.objects.filter(pk=resolved_navigation_object.pk)
for link_set in self.resolve(context=context, source=parent_instance.first()): if parent_instance:
for link in link_set['links']: for link_set in self.resolve(context=context, source=parent_instance.first()):
if link.link not in self.unbound_links.get(bound_source, ()): for link in link_set['links']:
resolved_links.append(link) if link.link not in self.unbound_links.get(bound_source, ()):
resolved_links.append(link)
for link in links: for link in links:
resolved_link = link.resolve( resolved_link = link.resolve(