Django Admin自定义app中模型显示顺序

发布时间 2023-05-06 17:28:15作者: 韩志超

在Django Admin中,模型的顺序默认是安装名称进行排序的,如下图:

如果想自定义app中模型显示顺序,可以有如下方法:

方法1-模型名称添加序号

当然这是最简单的一种方法,我们可以在模型内部的Meta类中通过verbose_name_plural来定制模型的显示顺序,如下图:

当然这不够优雅,在某些列表页也会显示这个序号。

方法2-使用插件django-admin-model-list-order

参考:https://github.com/Vikrant-Arya/django-admin-model-list-order

  1. 安装插件:pip install django-admin-model-list-order
  2. 在settings.py中配置插件、中间件及默认序号
# settings.py
...

INSTALLED_APPS = (
    ...
    'admin_model_list_order',
    ...
)

MIDDLEWARE_CLASSES = (
    ...
    'admin_model_list_order.middleware.AdminModelListOrder',
    ...
)

ADMIN_MODEL_DEFAULT_PRIORITY = 100
  1. 在模型Admin模型中使admin_order制定顺序,如下图:

自定义AdminSite.get_app_list方法来实现

参考:Django Admin如何定制App显示顺序#方法2