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 Sql数据库增删改查操作简单封装
Apr 18 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
python按照多个条件排序的方法
Feb 08 Python
python实现远程控制电脑
May 23 Python
Python如何计算语句执行时间
Nov 22 Python
基于python判断目录或者文件代码实例
Nov 29 Python
Python通过Pillow实现图片对比
Apr 29 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Keras实现将两个模型连接到一起
May 23 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 Python
Python爬虫代理池搭建的方法步骤
Sep 28 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
常用js脚本
2006/12/03 Javascript
wordpress之js库集合研究介绍
2007/08/17 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
Python中返回字典键的值的values()方法使用
2015/05/22 Python
简单实现python爬虫功能
2015/12/31 Python
Python构建XML树结构的方法示例
2017/06/30 Python
关于Python数据结构中字典的心得
2017/12/04 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
服装设计专业自荐书范文
2013/12/30 职场文书
捐款活动总结
2014/08/27 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
六年级学生评语大全
2014/12/26 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
javascript函数式编程基础
2021/09/15 Javascript