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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
python数据挖掘需要学的内容
Jun 23 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
python离线安装外部依赖包的实现
Feb 13 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
使用python创建Excel工作簿及工作表过程图解
May 27 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 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解析url的三个示例
2014/01/20 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
PHP内置加密函数详解
2016/11/20 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python yield关键词案例测试
2019/10/15 Python
python/golang 删除链表中的元素
2020/09/14 Python
后勤人员自我评价怎么写
2013/09/19 职场文书
最新教师自我评价分享
2013/11/12 职场文书
求职信范文英文版
2014/01/05 职场文书
校本教研工作制度
2014/01/22 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
会计岗位职责范本
2014/03/07 职场文书
中式结婚主持词
2014/03/14 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
校运动会广播稿300字
2014/10/07 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书