xadmin后台页面的自定制(2)重写钩子函数版

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

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 %}

 

转载于:https://www.cnblogs.com/pgxpython/p/10593507.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值