Django---inclusion_tag的使用

Django当中的inclusion_tag,来源于  from django.template import Library    属于Library下的一个方法。

主要作用:通过渲染一个模板来显示一些数据。属于自定义标签的一种。

项目实现:为了能够在页面中一栏上显示一级菜单

 

 

   1.templatetags/rbac.py

from django.template import Library
from django.conf import settings
from collections import OrderedDict
from rbac.service import urls

register = Library()

@register.inclusion_tag('rbac/static_menu.html')
def static_menu(request):
    """
    创建一级菜单
    :return:
    """
    menu_list = request.session[settings.MENU_SESSION_KEY]
    return {'menu_list': menu_list}


注意:settings.MENU_SESSION_KEY 放放在settings当中的一个字符串。具体在初始化权限时候,将可以做菜单的权限放入到了session存储。

2.static_menu.html
<div class="static-menu">
    {% for item in menu_list %}
        <a href="{{ item.url }}">
            <span class="icon-wrap"><i class="fa {{ item.icon }}"></i></span> {{ item.title }}</a>
    {% endfor %}
</div>
3.layout.html
{% load static %}
{% load rbac %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>xx系统</title>
    <link rel="shortcut icon" href="{% static 'imgs/luffy-study-logo.png' %} ">
    <link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.css' %} "/>
    <link rel="stylesheet" href="{% static 'plugins/font-awesome/css/font-awesome.css' %} "/>
    <link rel="stylesheet" href="{% static 'css/commons.css' %} "/>
    <link rel="stylesheet" href="{% static 'css/nav.css' %} "/>
    <link rel="stylesheet" href="{% static 'rbac/css/rbac.css' %} "/>
<div class="pg-body">
    <div class="left-menu">
        <div class="menu-body">
            {% static_menu request %}
        </div>
    </div>
</div>
<script src="{% static 'js/jquery-3.3.1.min.js' %} "></script>
<script src="{% static 'plugins/bootstrap/js/bootstrap.js' %} "></script>
<script src="{% static 'rbac/js/rbac.js' %} "></script>
{% block js %} {% endblock %}
</body>
</html>

注意:1. {% load rbac %} 必须引入。(templatetags下的py文件);2. {% static_menu request %} 要将这个方法引入。request是参数。

 

 











posted on 2022-07-27 16:49  一先生94  阅读(156)  评论(0编辑  收藏  举报

导航