1.设置settiings.py--->在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'web.apps.WebConfig',
    'rbac.apps.RbacConfig',
]

2.在app中创建templatetags模块(模块名只能是templatetags)

3.创建任意*** .py 文件, 如: rbac.py

from django import template
from django.utils.safestring import mark_safe

#register的名字是固定的,不可改变
register = template.Library()

# 乘法过滤器
@register.filter
def mul(x,y):
    return x*y

# a标签过滤器
@register.filter
def tag(val):
    return mark_safe("<a>%s</a>"%val)

# 小写字母过滤器
@register.filter
def lower(val):
    return val.lower()

# 3个数相乘之和
@register.simple_tag
def mul_tag(x,y,z):
    return x*y*z

4.在使用自定义simple_tag和filter的html文件中导入之前创建的 rbac.py

{% load rbac %}

5.在模板中使用上面过滤器:

# num=12
{% load rbac %}
{{ num|filter_multi:2 }} #24

//////////////////////////////// 自定义过滤器 ////////////////////////////////

1.设置settiings.py--->在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.(如上所示)

2.在app中创建templatetags模块(模块名只能是templatetags)(如上所示)

3.创建网页menu.html文件

<div class="multi-menu">
    {% for item in permission_menu_dict.values %}
       <div class="item">
        <div class="title"><i class="{{ item.menu_icon }}"></i>{{ item.menu_title }}</div>
        <div class="body">
              {% for foo in item.children %}
                  <a href="{{ foo.url }}">{{ foo.title }}</a>
              {% endfor %}
        </div>
       </div>
    {% endfor %}
</div>

4.创建任意*** .py 文件, 如: web.py

from django.template import Library

register = Library()

@register.inclusion_tag("rbac/menu.html")
def get_menu_styles(request):
    permission_menu_dict = request.session.get("permission_menu_dict")
  # 权限菜单字典 return {"permission_menu_dict": permission_menu_dict}

4.在使用自定义simple_tag的html文件中导入之前创建的web.py

# 这里只截取使用过滤器部分的代码,哪个网页用就把下面的代码复制上
<div class="left-menu">
    <div class="menu-body">
        {% load web %}
        {% get_menu_styles request %}
    </div>
</div>

5.