浏览代码

Allow app based model names

Denis K 8 年之前
父节点
当前提交
94a860baeb
共有 1 个文件被更改,包括 16 次插入8 次删除
  1. 16 8
      jet/utils.py

+ 16 - 8
jet/utils.py

@@ -302,14 +302,22 @@ def get_menu_items(context):
         def get_menu_item_app_model(app_label, data):
             item = {'has_perms': True}
 
-            if 'name' in data and app_label in original_app_list:
-                models = dict(map(
-                    lambda x: (x['name'], x),
-                    original_app_list[app_label]['models']
-                ))
-
-                if data['name'] in models:
-                    item = models[data['name']]
+            if 'name' in data:
+                parts = data['name'].split('.', 2)
+
+                if len(parts) > 1:
+                    app_label, name = parts
+                else:
+                    name = data['name']
+
+                if app_label in original_app_list:
+                    models = dict(map(
+                        lambda x: (x['name'], x),
+                        original_app_list[app_label]['models']
+                    ))
+
+                    if name in models:
+                        item = models[name].copy()
 
             if 'label' in data:
                 item['label'] = data['label']