如何有效运用inclusion_tag实现内容精准分类?

2026-05-17 04:421阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计482个文字,预计阅读时间需要2分钟。

如何有效运用inclusion_tag实现内容精准分类?

当页面上一块区域的内容需要在多个页面上展示时,可以使用inclusion_tag模块和自定义标签过滤器。具体步骤如下:

1. 使用inclusion_tag模块,将区域内容定义为一个单独的模板。

2.自定义一个标签过滤器,将内容传递给模板。

3.在需要展示该内容的页面中,使用自定义标签过滤器调用模板。

当页面上某一块区域的内容需要在多个页面上展示的使用,并且该区域的内容需要通过传参数才能正常显示,那么我们可以优先考虑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}

如何有效运用inclusion_tag实现内容精准分类?

前端的界面代码如下:

<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 %}

  

本文共计482个文字,预计阅读时间需要2分钟。

如何有效运用inclusion_tag实现内容精准分类?

当页面上一块区域的内容需要在多个页面上展示时,可以使用inclusion_tag模块和自定义标签过滤器。具体步骤如下:

1. 使用inclusion_tag模块,将区域内容定义为一个单独的模板。

2.自定义一个标签过滤器,将内容传递给模板。

3.在需要展示该内容的页面中,使用自定义标签过滤器调用模板。

当页面上某一块区域的内容需要在多个页面上展示的使用,并且该区域的内容需要通过传参数才能正常显示,那么我们可以优先考虑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}

如何有效运用inclusion_tag实现内容精准分类?

前端的界面代码如下:

<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 %}