17

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

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

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

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

有什么我可以添加到 Meta 类来指定组名的吗?

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

4

2 回答 2

13

您可以使用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'
        )
   },
)
于 2018-07-10T14:15:34.373 回答
8

您无法在模型定义中添加任何内容来执行此操作,因为模型(根据设计)不知道管理员的存在,也不知道它们将如何在管理员中呈现。

在这种情况下,您只需编写一个模板来满足您的需求并使用它;您所要求的只是进行演示更改,而模板是您在 Django 中进行演示的地方。

于 2009-04-15T05:08:21.300 回答