Django Admin设置应用程序及模型顺序方法详解
2020-04-02 12:08
951 查看
Django默认情况下,按字母顺序对模型进行排序。因此,Event应用模型的顺序为Epic、EventHero、EventVillain、Event
假设你希望顺序是
EventHero、EventVillain、Epic、Event。
用于呈现后台indxe页面的模板为admin/index.html,对应的视图函数为 ModelAdmin.index。
def index(self, request, extra_context=None): """ Display the main admin index page, which lists all of the installed apps that have been registered in this site. """ app_list = self.get_app_list(request) context = { **self.each_context(request), 'title': self.index_title, 'app_list': app_list, **(extra_context or {}), } request.current_app = self.name return TemplateResponse(request, self.index_template or 'admin/index.html', context)
默认的get_app_list方法用于设置模型的顺序。
def get_app_list(self, request): """ Return a sorted list of all the installed apps that have been registered in this site. """ app_dict = self._build_app_dict(request) # 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: x['name']) return app_list
因此,可以通过覆盖get_app_list方法来修改显示顺序:
class EventAdminSite(AdminSite): def get_app_list(self, request): """ Return a sorted list of all the installed apps that have been registered in this site. """ ordering = { "Event heros": 1, "Event villains": 2, "Epics": 3, "Events": 4 } 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
以上代码app['models'].sort(key=lambda x: ordering[x['name']])用来设置默认顺序。修改后效果如下。
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- Django中设置admin的方法(笔记)
- django admin组件使用方法详解
- Django内置user模型中使用的方法详解
- [申精]详解ucenter原理及第三方应用程序整合思路、方法
- 设置Android应用程序全屏显示的两种方法
- Fedora Core 5.0 中添加字体及应用程序字体设置方法及解决JVM乱码问题
- 开机启动项怎么设置 启动项命令的设置方法详解
- 运行java applet时提示:您的安全设置已阻止本地应用程序运行 解决方法
- ubuntu 13.04 root权限设置方法详解
- web 应用程序测试方法和测试技术详解
- 设置Silverlight应用程序滚动条适应方法
- android 设置应用程序装在T卡的方法
- 编写php应用程序实现摘要式身份验证的方法详解
- realARM s5pv210开发板wifi开机启动设置方法 开机启动linux应用程序
- 当应用程序开始执行时,系统方法调用的先后顺序
- Ecshop后台增加商店设置选项和使用方法详解
- Django1.6中models模型关联的方法整理
- linux chkconfig+设置程序开关机顺序 详解
- PostfixAdmin虚拟域名不用lookup设置方法
- Ubuntu设置Static IP的方法Ifconfig网络配置工具详解