templatetags:返回一个HTML代码片段
使用场景:部分HTML片段被多个不用的页面使用,例如菜单栏,合作链接等,它们需要在各自的视图函数中调用相同的数据。
使用方法:
一、创建templatetags文件夹
二、创建py文件,实现HTML页面调用的函数。函数接收参数在HTML页面调用时传参,返回值为装饰器中HTML页面需要渲染的数据,
app/service/templatetags/menu.py
from django import template register = template.Library() @register.inclusion_tag('men_permission.html') def get_menu(request): menu_permission_list = request.session.get('menu_permission_list') return {"menu_permission_list":menu_permission_list}
三、创建单独存放需要返回的HTML代码片段页面,即函数装饰器中的HTML
app/templates/men_permission.html
<div class="list-group"> {% for permission in menu_permission_list %} <a href="{{ permission.permission__urls}}" class="list-group-item">{{ permission.permission__group__title }}</a> {% endfor %} </div>
四、在需要展示这段HTML片段的页面中调用,也可以写在母版中,因为每个页面都是固定展示的
app/templates/show_user.html
{% load menu %} // 先调用py文件 <div class="left-menu "> {# <div class="list-group">#} {# {% for permission in menu_permission_list %}#} {# <a href="{{ permission.permission__urls}}" class="list-group-item">{{ permission.permission__group__title }}</a>#} {# {% endfor %}#} {# </div>#} {% get_menu request %} //使用函数并传参 </div>