在 Django 管理仪表板中设置应用程序和模型的顺序

wik*_*iki 7 python django django-models django-admin django-apps

默认情况下,Django 管理仪表板对我来说是这样的:

在此输入图像描述

我想更改部分中模型的顺序Profile,因此通过使用此处此处的代码,我可以更改 Django 管理仪表板中模型名称的顺序:

class MyAdminSite(admin.AdminSite):
    def get_app_list(self, request):
        """
        Return a sorted list of all the installed apps that have been
        registered in this site.
        """
        ordering = {
            "Users": 1,
            "Permissions": 2,
            "Activities": 3,
        }
        app_dict = self._build_app_dict(request)
        # a.sort(key=lambda x: b.index(x[0]))
        # Sort the apps alphabetically.
        app_list = sorted(app_dict.values(), key=lambda x: x['name'].lower())

        # Sort the models alphabetically within each app.
        for app in app_list:
            app['models'].sort(key=lambda x: ordering[x['name']])

        return app_list

mysite = MyAdminSite()
admin.site = mysite
sites.site = mysite
Run Code Online (Sandbox Code Playgroud)

新的外观和感觉:

在此输入图像描述

但正如你所看到的,我丢失了该AUTHENTICATION AND AUTHORIZATION部分;我应该怎么做才能拥有所有部分,同时拥有自己的自定义部分排序Profile

Nik*_*kur 0

get_app_list()首先调用super,如下所示:

class MyAdminSite(admin.AdminSite):
def get_app_list(self, request):
    all_list = super().get_app_list(request)
    # reorder the app list as you like
    return app_list


mysite = MyAdminSite()
admin.site = mysite
sites.site = mysite
Run Code Online (Sandbox Code Playgroud)