Просмотр исходного кода

Reference DEFAULT_USER_PREFERENCES for undefined preferences

jeremystretch 4 лет назад
Родитель
Сommit
cb6342c874
1 измененных файлов с 17 добавлено и 5 удалено
  1. 17 5
      netbox/users/models.py

+ 17 - 5
netbox/users/models.py

@@ -80,13 +80,25 @@ class UserConfig(models.Model):
         keys = path.split('.')
         keys = path.split('.')
 
 
         # Iterate down the hierarchy, returning the default value if any invalid key is encountered
         # Iterate down the hierarchy, returning the default value if any invalid key is encountered
-        for key in keys:
-            if type(d) is dict and key in d:
+        try:
+            for key in keys:
                 d = d.get(key)
                 d = d.get(key)
-            else:
-                return default
+            return d
+        except (AttributeError, KeyError):
+            pass
+
+        # If the key is not found in the user's config, check for an application-wide default
+        config = get_config()
+        d = config.DEFAULT_USER_PREFERENCES
+        try:
+            for key in keys:
+                d = d.get(key)
+            return d
+        except (AttributeError, KeyError):
+            pass
 
 
-        return d
+        # Finally, return the specified default value (if any)
+        return default
 
 
     def all(self):
     def all(self):
         """
         """