django admin中的组模型

时间:2009-04-14 16:14:16

标签: django django-models django-admin

有没有办法在django管理界面中对模型进行分组?

我目前有一个名为requests的应用程序,管理站点中显示以下模型:

**Requests**
Divisions
Hardware Requests
Hardware Types
Requests
Software Requests
Software Types

我希望将这些部门,软件请求和硬件请求分别分组到“类型”组中。 我知道我可以覆盖和硬编码admin / index.html和base_site.html,但这似乎很复杂,只是为了指定分组。

我可以添加到Meta类以指定组名吗?

到目前为止,我发现实现我想要的唯一方法是将模型移动到请求中的新应用程序(“requests.Types”)但是再次感觉不像是'正确的方式'。< / p>

2 个答案:

答案 0 :(得分:7)

在模型定义中没有任何东西可以用来做这件事,因为模型 - 按设计 - 不知道管理员的存在,或者它们将如何在管理员中呈现。< / p>

这种情况下,您只需编写一个可以满足您需求的模板并使用它;所有你要求的是一个表现性的变化,模板是你在Django中进行演示的地方。

答案 1 :(得分:1)

您可以使用django-modeladmin-reorder进行操作。

您将按照以下方式以某种方式对其进行配置(settings.py):

ADMIN_REORDER = (
    {'app': 'requests', 'label': 'Types',
        'models': (
            'requests.Divisions',
            'requests.HardwareRequests',
            'requests.HardwareTypes'
        )
   },
   {'app': 'requests', 'label': 'Other models',
        'models': (
            'requests.Requests',
            'requests.SoftwareRequests',
            'requests.SoftwareTypes'
        )
   },
)