From 2f120d99aa398539fef8f95256cb04bfd3f1a74e Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 23 Aug 2018 16:19:30 -0400 Subject: [PATCH] Don't process the AttributeError exception but let calling code handle it. Signed-off-by: Roberto Rosario --- mayan/apps/common/utils.py | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/mayan/apps/common/utils.py b/mayan/apps/common/utils.py index e33ed6c68e..e16ffda98d 100644 --- a/mayan/apps/common/utils.py +++ b/mayan/apps/common/utils.py @@ -123,36 +123,30 @@ def resolve(path, urlconf=None): def return_attrib(obj, attrib, arguments=None): - try: - if isinstance(attrib, types.FunctionType): - return attrib(obj) - elif isinstance( - obj, dict_type - ) or isinstance(obj, dictionary_type): - return obj[attrib] - else: - result = reduce_function(getattr, attrib.split('.'), obj) - if isinstance(result, types.MethodType): - if arguments: - return result(**arguments) - else: - return result() + if isinstance(attrib, types.FunctionType): + return attrib(obj) + elif isinstance( + obj, dict_type + ) or isinstance(obj, dictionary_type): + return obj[attrib] + else: + result = reduce_function(getattr, attrib.split('.'), obj) + if isinstance(result, types.MethodType): + if arguments: + return result(**arguments) else: - return result - except Exception as exception: - if settings.DEBUG: - return 'Attribute error: %s; %s' % (attrib, exception) + return result() else: - return force_text(exception) + return result -def return_related(instance, attribute): +def return_related(instance, related_field): """ This functions works in a similar method to return_attrib but is meant for related models. Support multiple levels of relationship using double underscore. """ - return reduce_function(getattr, attribute.split('__'), instance) + return reduce_function(getattr, related_field.split('__'), instance) def urlquote(link=None, get=None):