Browse Source

Fixes #865: Fix server error when attempting to delete a protected object parent (Python 3)

Jeremy Stretch 8 years ago
parent
commit
d817990283
1 changed files with 6 additions and 7 deletions
  1. 6 7
      netbox/utilities/error_handlers.py

+ 6 - 7
netbox/utilities/error_handlers.py

@@ -5,20 +5,19 @@ def handle_protectederror(obj, request, e):
     """
     Generate a user-friendly error message in response to a ProtectedError exception.
     """
-    dependent_objects = e[1]
     try:
-        dep_class = dependent_objects[0]._meta.verbose_name_plural
+        dep_class = e.protected_objects[0]._meta.verbose_name_plural
     except IndexError:
         raise e
 
     # Grammar for single versus multiple triggering objects
     if type(obj) in (list, tuple):
-        err_message = "Unable to delete the requested {}. The following dependent {} were found: ".format(
+        err_message = u"Unable to delete the requested {}. The following dependent {} were found: ".format(
             obj[0]._meta.verbose_name_plural,
             dep_class,
         )
     else:
-        err_message = "Unable to delete {} {}. The following dependent {} were found: ".format(
+        err_message = u"Unable to delete {} {}. The following dependent {} were found: ".format(
             obj._meta.verbose_name,
             obj,
             dep_class,
@@ -26,11 +25,11 @@ def handle_protectederror(obj, request, e):
 
     # Append dependent objects to error message
     dependent_objects = []
-    for o in e[1]:
+    for o in e.protected_objects:
         if hasattr(o, 'get_absolute_url'):
-            dependent_objects.append('<a href="{}">{}</a>'.format(o.get_absolute_url(), str(o)))
+            dependent_objects.append(u'<a href="{}">{}</a>'.format(o.get_absolute_url(), o))
         else:
             dependent_objects.append(str(o))
-    err_message += ', '.join(dependent_objects)
+    err_message += u', '.join(dependent_objects)
 
     messages.error(request, err_message)