From c92262f21074087f42afd11b73d38b5adbc5f01c Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sat, 27 Mar 2021 23:53:39 +0100
Subject: [PATCH] Catch 404 exception if current path cannot be resolved

Closes #1
---
 menu_generator/menu.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/menu_generator/menu.py b/menu_generator/menu.py
index f772d44..cdc65a2 100755
--- a/menu_generator/menu.py
+++ b/menu_generator/menu.py
@@ -1,7 +1,7 @@
 import copy
 
 import django
-from django.core.exceptions import ImproperlyConfigured
+from django.core.exceptions import ImproperlyConfigured, Resolver404
 from .utils import get_callable, parse_url, path_startswith
 
 if django.VERSION >= (1, 10):  # pragma: no cover
@@ -109,8 +109,11 @@ class MenuBase(object):
                 if path_startswith(self.path, related_url):
                     return True
             # Resolve URL and check if it relates to a related views
-            if resolve(self.path).func in self._get_related_views(item_dict):
-                return True
+            try:
+                if resolve(self.path).func in self._get_related_views(item_dict):
+                    return True
+            except Resolver404:
+                return False
         return False
 
     def _is_root(self, item_dict):
-- 
GitLab