1. 程式人生 > >自定義過濾器和標籤

自定義過濾器和標籤

第一步:

 在settings中的INSTALLED_APPS配置當前app,不然django無法找到自定義的simple_tag.

第二步:

在app中建立templatetags模組(模組名只能是templatetags)

第三步:

建立py檔案

from django import template
from django.utils.safestring import mark_safe
register = template.Library()   #register的名字是固定的,不可改變
             
    @register.filter
    def filter_multi(v1,v2):
        return  v1 * v2

第四步:

在使用自定義simple_tag和filter的html檔案中匯入之前建立的py檔案

{% load my_tags %} 

第五步:

在模板中使用

{% load my_tags %} 
{{ 變數|filter_multi:變數 }}

自定義標籤使用時用{%  %},建立時用@register.simple_tag

 inclusion_tag

from django.utils.safestring import mark_safe
from django.template import Library
import re register =Library() @register.inclusion_tag("rbac/menu.html") def get_menu_styles(request): permission_menu_list = request.session.get("permission_menu_list") for item in permission_menu_list: if re.search("^{}$".format(item["url"]), request.path): item[
"class"] = "active" return {"permission_menu_list":permission_menu_list}

此方法是將返回值返回給html