由于项目有通过自定义页面来实现功能的需求,百度也查了很多资料,也没找到合适的方法,所以决定分析源码,通过对源码的分析,找到了此方法。

01-需求

首先,如果要在xadmin中展示一个数据管理页面,首先是在Django的models.py文件中创建一个Model类,
再通过adminx.py文件将创建的models注册到xadmin中,最后在页面上对该models对一些操作管理显示出来。
现在我们要新增一个自定义的页面,同样需要在models.py文件中新增一个类,并继承models.Model父类,
由于我们要创建的页面并不是用于作数据管理,所以该model中不需要编写任何的字段,直接写它的Meta和__str__方法即可:
# 例如:

class change_into(models.Model):

    class Meta:
verbose_name = u"转入分析"
verbose_name_plural = verbose_name
db_table = 'change_into' def __str__(self):
return self.Meta.verbose_name class change_out(models.Model): class Meta:
verbose_name = u"转出分析"
verbose_name_plural = verbose_name
db_table = 'change_out' def __str__(self):
return self.Meta.verbose_name

02-重写get_context方法

# adminx.py
from xadmin.views.base import CommAdminView class ChangeIntoAdmin(object):
# 指向自定义的页面
object_list_template = 'change_into.html' # 重写方法,把要展示的数据更新到 context
def get_context(self):
context = CommAdminView.get_context(self) bill_message = bill_manage.objects.all()
context.update(
{
'title': '转入分析',
}
) return context class ChangeOutAdmin(object):
object_list_template = 'change_out.html' def get_context(self):
context = CommAdminView.get_context(self) bill_message = bill_manage.objects.all()
context.update(
{
'title': '转出分析',
'bill_message': bill_message,
}
) return context xadmin.site.register(change_into, ChangeIntoAdmin)
xadmin.site.register(change_out, ChangeOutAdmin)

03-自定义的页

# change_into.html

{# 继承xadmin的侧边栏和导航栏 #}
{% extends 'xadmin/base_site.html' %} {# 去掉标签栏 #}
{% block content-nav %} {% endblock %} {% block content %}
{# 要展示的数据 #}
<h1>转入分析</h1>
{% for i in bill_message%}
{{ i }}
{% endfor %}
{% endblock content %}

xadmin后台页面的自定制(2)重写钩子函数版的更多相关文章

  1. xadmin后台页面的自定制

    01-自定制页面 注:最近找到了更好的解决办法:重写钩子函数版  https://www.cnblogs.com/pgxpython/p/10593507.html 需求背景:根据要实现的功能需求,x ...

  2. django xadmin后台页面实现二级联动

    思路 先找到控件id ,这样就可以监听change事件 然后把自己写的js加入xadmin中 添加url和view,接受ajax请求和发送数据 第一步:找到联动上下级的ID 在浏览器中通过F12查看 ...

  3. xadmin后台页面定制和添加服务器监控组件

    xadmin定制 项目需要添加服务器监控页面,碍于xadmin不是很好自定义页面,之前写过插件,太麻烦了,还是直接改源码 原理其实很简单,因为xadmin的处理流程和django类似,都是通过拦截UR ...

  4. python测试开发django-54.xadmin添加自定义页面

    前言 xadmin后台如何添加一个自己写的页面呢?如果仅仅是在GlobalSettings添加url地址的话,会丢失左侧的导航菜单和顶部的页面,和整体的样式不协调. 新增页面后希望能保留原来的样式,只 ...

  5. DTCMS插件的制作实例电子资源管理(二)Admin后台页面编写

    总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...

  6. [转]后台页面访问权限:页面基类&内置票据认证 使用方法

    本文转自:http://www.cnblogs.com/fishtreeyu/archive/2011/01/29/1947421.html 一般网站后台页面除了登录页面login.aspx未登录用户 ...

  7. 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

    第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...

  8. 自定义xadmin后台首页

    登陆xadmin后台,首页默认是空白,可以自己添加小组件,xadmin一切都是那么美好,但是添加小组件遇到了个大坑,快整了2个礼拜,最终实现想要的界面.初始的页面如图: 本机后台显示这个页面正常,do ...

  9. python测试开发django-39.xadmin详情页面布局form_layout

    前言 xadmin的详情页面默认是一行展示一个字段,可以使用form_layout对详情页面的布局重新设计. 可以设置必填和非必填字段,也可以设置不显示,不可以编辑的字段. models模块 先在mo ...

随机推荐

  1. ROS 101

    https://www.clearpathrobotics.com/blog/2014/01/how-to-guide-ros-101/ 什么是ROS ROS(robot operating syst ...

  2. 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上

    Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...

  3. Java开发笔记(四十四)本地日期时间与字符串的互相转换

    之前介绍Calendar的时候,提到日历实例无法直接输出格式化后的时间字符串,必须先把Calendar类型转换成Date类型,再通过格式化工具SimpleDateFormat获得字符串.而日期时间的格 ...

  4. Redis面试点

      redis的数据结构有那些 字符串 String 字典:Hash 列表:List 集合:set 有序集合:sortedSet 如果大量的key设置在同一时间过期,一般需要注意什么 大量的key过期 ...

  5. 第五课 Css3旋转放大属性,正六边形的绘制

    ---恢复内容开始--- 一.效果 二.知识点 1.background-color: rgba(0,0,0,.4);   (红色.绿色.蓝色.透明度(0-1)) 2.position: absolu ...

  6. charles抓包出现乱码 SSL Proxying not enabled for this host:enable in Proxy Setting,SSL locations

    1.情景:抓包的域名下 全部是unknown,右侧出现了乱码 2.查看unknown的notes里面:SSL Proxying not enabled for this host:enable in ...

  7. JavaScript知识点 思维导图

    javascript变量 javascript数据类型 javascript运算符 javascript流程语句 javascript数组 javascript字符串函数 javascript函数基础 ...

  8. TS学习随笔(六)->断言

    now,我们来看一看TS里面的断言,听起来很上档次啊,其实看完你就发出惊叹,这就是断言啊 类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型 语法 <类型>值 ...

  9. 《Pro Asp.net core mvc 2》bower问题

    在阅读<Pro Asp.net core mvc 2>中有使用bower管理包,可能是由于vs2017或者bootstrap什么地方改变了,按照步骤进行操作,完全没有对应的样式出现.开始以 ...

  10. 从.Net到Java学习第八篇——SpringBoot实现session共享和国际化

    从.Net到Java学习系列目录 SpringBoot Session共享 修改pom.xml添加依赖 <!--spring session--> <dependency> & ...