1. 程式人生 > >django模板中的自定義過濾器

django模板中的自定義過濾器

tag span .lib 名稱 models mod ppa har import

(1)在APP下創建templatetags文件夾,與Models.py、views.py等同級,templatetags文件夾下添加__init__.py文件,可為空,再添加一個模塊文件,例如cpt_filters.py,目錄結構如下

myapp/
    __init__.py
    models.py
    templatetags/
        __init__.py
        cpt_filters.py
    views.py
    admin.py
    appa.py

目錄下添加__init__.py文件可讓python知道這裏是python包,這裏的所有python文件可被直接在別處引用。

(2)添加自定義過濾器

from django import template

register = template.Library()
#實例化Library
@register.filter  
#註冊過濾器

#這個過濾器是返回給定字典中key名稱對應的value值
def get_value(mydict, keyname):
    return mydict[keyname]

(3)在模板中應用

#首先在模板頭部引入過濾器
{% load cpt_filters %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="
UTF-8"> <title>Title</title> </head> <body> {{ mydict | get_value:keyname }} </body> </html

django模板中的自定義過濾器