django xadmin(2) 在xadmin基础上完成自定义页面

1.在xadmin.py,GlobalSettings中自定义菜单

2.自定义视图函数,并获取原来的菜单等一下信息(主要是为了用xadmin的模板),具体的自己看xadmin源码

3.在adminx.py中注册路由

4.html继承。

例:

xadmin.py:

class GlobalSettings(object):
    site_title = "后台"
    site_footer = "xxxx"
    # menu_style = "accordion"
    def get_site_menu(self):
        return (
            {'title': '新功能',
             'menus': (
                 {
                     'title': '新功能',
                     'url': '/xadmin/xxxxview/',
                 },
             )
             },
        )
   # 调用原来model的话
    def get_site_menu(self):
        return (
            {'title': 'ERP管理系统',
             'perm': self.get_model_perm(models.ZVipbalance, 'view'),
             'menus': (
                 {
                     'title': '新',
                     'url': '/admin/test_view/',
                     # 'perm': self.get_model_perm(ZVipbalanceList, 'view'),
                 },
             )
             },
        )

views.py:

 

class TestView(CommAdminView):
    def get(self, request):
        context = super().get_context()
        title = "会员延期"
        # context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title})
        context["title"] = title
        return render(request, 'ERPSystem/t.html', context) #主目录的 template下的 html文件

# 调用本地文件进行展示
class LogView(CommAdminView):
    def get(self, request):
        context = super().get_context()
        readfilecontent1 = []
        readfilecontent2 = []
        list = os.listdir('log')
        path_last1 = ''
        path_last2 = ''
        last_time = ''
        for i in range(0, len(list)):
            if re.match(r'log',list[i]):
                path = os.path.join('log', list[i])
                if last_time == '' :
                    last_time = os.path.getmtime(path)
                    path_last1 = path
                elif last_time < os.path.getmtime(path):
                    # path_last2 = path_last1
                    path_last1 = path

        with open(path_last1, "r", encoding='gb2312') as f:
            for line in f:
                readfilecontent1.insert(0, line)
        if path_last2 != '':
            with open(path_last2, "r", encoding='gb2312') as f:
                for line in f:
                    readfilecontent2.insert(0, line)
        else:
            path_last2 = 'no more'

        context["title1"] = path_last1
        context["title2"] = path_last2
        context["context1"] = readfilecontent1
        context["context2"] = readfilecontent2
        return render(request, 'log.html', context)

 

xadmin.py:

import xadmin
from .views import TestView

xadmin.site.register_view(r'test_view/$', TestView, name='for_test'):

 html:

 1 {% extends 'xadmin/base_site.html' %}
 2 {# 例 展示本地文件内容#}
 3 {% block nav_form %}
 4     <h3>{{ title1 }}</h3>
 5     {% for i in context1 %}
 6         <p>{{ i }}</p>
 7     {% endfor %}
 8     <h3>{{ title2 }}</h3>
 9 
10     {% for i in context2 %}
11         <p>{{ i }}</p>
12     {% endfor %}
13 
14 
15 {% endblock %}

 

转载于:https://www.cnblogs.com/chu0916/p/10689862.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值