Django Admin设置应用程序及模型顺序方法详解


Posted in Python onApril 01, 2020

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设置应用程序及模型顺序方法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
通过python下载FTP上的文件夹的实现代码
Feb 10 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
python通过链接抓取网站详解
Nov 20 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
python随机模块random使用方法详解
Feb 14 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 Python
django API 中接口的互相调用实例
Apr 01 #Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 #Python
Python greenlet和gevent使用代码示例解析
Apr 01 #Python
Django-rest-framework中过滤器的定制实例
Apr 01 #Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 #Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 #Python
Python AutoCAD 系统设置的实现方法
Apr 01 #Python
You might like
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
js实现全选和全不选
2020/07/28 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
python将视频转换为全字符视频
2019/04/26 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
Python类反射机制使用实例解析
2019/12/30 Python
维也纳通行证:Vienna PASS
2019/07/18 全球购物
"引用"与多态的关系
2013/02/01 面试题
秋季红领巾广播稿
2014/01/27 职场文书
安全生产年活动总结
2014/08/29 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
会计工作态度自我评价
2015/03/06 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python