xadmin插入自定义页面

在xadmin后台新增页面,如下所示:

tempsnip.png

1,在xadmin.py文件中设置全局样式并注册。

class GlobalSetting(object):
    site_title="频道后台管理"
    site_footer="其它"
    # menu_style = 'accordion' #设置app下拉展开

    """
    自定义页面
    """
    def get_site_menu(self):  #名称不能改
        return [
            {
                'menus': (
                    {
                        'title': '移动直播生成器',    #这里是你菜单的名称
                        'url': '/xadmin/test_view',     #这里填写你将要跳转url
                        # 'icon': 'fa fa-cny'     #这里是bootstrap的icon类名,要换icon只要登录bootstrap官网找到icon的对应类名换上即可
                    },
                )
            }
        ]
#注册要跳转的视图函数
xadmin.site.register_view(r'test_view/$', TestView, name='test')

urls.py

urlpatterns = [
    url(r'',xadmin.site.urls),
    url(r'xadmin/test_view/',TestView.as_view())
]

2,在APP的views.py文件中编写视图函数TestView

from xadmin.views import CommAdminView
class TestView(CommAdminView):
    def get(self, request):
        context = super().get_context()  # 这一步是关键,必须super一下继承CommAdminView里面的context,不然侧栏没有对应数据,我在这里卡了好久
        title = "移动直播生成器"  # 定义面包屑变量
        context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title})  # 把面包屑变量添加到context里面
        context["title"] = title  # 把面包屑变量添加到context里面
        # 下面你可以接着写你自己的东西了,写完记得添加到context里面就可以
        return render(request,'test.html', context)  # 最后指定自定义的template模板,并返回context

    def get_url(self, app_name, stream_name):
        t = time.time() + 172800
        keytime = str(int(t))
        hashstring = "/" + app_name + "/" + stream_name + "-" + keytime + "-0-0-" + app_name + "alipush"
        m = hashlib.md5()
        m.update(hashstring.encode("utf8"))
        mm = m.hexdigest()
        print(mm)
        push = "rtmp://" + app_name + "alipush.v.myalicdn.com/" + app_name + "/" + stream_name + "?auth_key=" + keytime + "-0-0-" + mm
        return push

    def post(self, request):
        print('mmmmmmmmmmmmm')
        app_name = request.POST.get('app')
        stream_name = request.POST.get('name')
        context = super().get_context()  # 这一步是关键,必须super一下继承CommAdminView里面的context,不然侧栏没有对应数据,我在这里卡了好久
        title = "移动直播生成器"  # 定义面包屑变量
        context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title})  # 把面包屑变量添加到context里面
        context["title"] = title  # 把面包屑变量添加到context里面
        # 下面你可以接着写你自己的东西了,写完记得添加到context里面就可以了
        context['app_name'] = app_name
        context['streaa_name'] = stream_name
        context['push'] = self.get_url(app_name,stream_name)
        return render(request,'test.html', context)  # 最后指定自定义的template模板,并返回context

3,写一个HTML文件用于渲染页面,templates/test.html




    
    Title



{% extends 'xadmin/base_site.html' %}

{% block content-nav %}
{% endblock %}

{% block content %}
{% csrf_token %}
AppName:
StreamName:
{# #}
{{ push }}
{% endblock %}
{% block content %}
这里面是自定义的页面。。。
{% endblock %}

你可能感兴趣的:(xadmin插入自定义页面)