inclusion_tag的运用
Posted 叶青IT爱好者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了inclusion_tag的运用相关的知识,希望对你有一定的参考价值。
当页面上某一块区域的内容需要在多个页面上展示的使用,并且该区域的内容需要通过传参数才能正常显示,那么我们可以优先考虑inclusion_tag模块
自定义标签过滤器inclusion_tag三步骤:
1.在应用下必须新建一个名叫templatetags的文件夹
2.在文件夹下新建任意名称的py文件比如rbac.py
3.在该py文件内必须先写两句代码
from django.template import Library register = Library()
下面看一个运用的实例代码
@register.inclusion_tag(\'rbac/multi_menu.html\')
def multi_menu(request):
"""
创建二级菜单
:return:
"""
menu_dict = request.session[settings.MENU_SESSION_KEY]
# 对字典的key进行排序
key_list = sorted(menu_dict)
# 空的有序字典
ordered_dict = OrderedDict()
for key in key_list:
val = menu_dict[key]
val[\'class\'] = \'hide\'
for per in val[\'children\']:
if per[\'id\'] == request.current_selected_permission:
per[\'class\'] = \'active\'
val[\'class\'] = \'\'
ordered_dict[key] = val
return \'menu_dict\': ordered_dict
前端的界面代码如下:
<div class="multi-menu" >
% for item in menu_dict.values %
<div class="item">
<div class="title"><span class="icon-wrap"><i class="fa item.icon "></i></span> item.title </div>
<div class="body item.class ">
% for per in item.children %
<a class=" per.class " href=" per.url "> per.title </a>
% endfor %
</div>
</div>
% endfor %
</div>
运用的时候需要引入比如上面的运用
% load rbac % % multi_menu request %
以上是关于inclusion_tag的运用的主要内容,如果未能解决你的问题,请参考以下文章
Django之自定义标签,过滤器,以及inclusion_tag