标签:setting for str 需要 title 基本 页面 导入 clu
inclusion_tag可以实现从后台往前端传递绑定数据的样式,一般用来动态显示模板页面中显示固定格式的数据。
step1: 编写前端页面样式模板
rbac/templates/rbac/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>
step2: 使用inclusion_tag
rbac/templatetags/rbac.py
from django.template import Library
from django.conf import settings
register = Library()
@register.inclusion_tag("rbac/static_menu.html")
def static_menu(request):
"""
动态显示一级菜单
:param request:
:return:
"""
menu_list = request.session[settings.PERMISSION_MENU_KEY]
return {"menu_list": menu_list}
# rbac/templatetags/rbac.py 必须是 templatetags文件夹名
# register = Library() 固定写法
# return 的数据传递给rbac/static_menu.html使用
step3: 在需要的页面位置处,引入并使用inclusion_tag
web/templates/web/layout.html
{# 先导入 #}
{% load rbac %}
<div class="pg-body">
<div class="left-menu">
<div class="menu-body">
{# 再使用 #}
{% static_menu request %}
</div>
</div>
</div>
本质:static_menu
函数给rbac/static_menu.html
提供需要的参数,然后再需要的页面位置处使用 static_menu
函数,需要时提供 static_menu
函数需要的参数。页面最后将渲染rbac/static_menu.html
的带有数据的样式。
标签:setting for str 需要 title 基本 页面 导入 clu
原文地址:https://www.cnblogs.com/liuxu2019/p/11960866.html