阿小信大人的头像
Where there is a Python, there is a way. 阿小信大人

Django自定义模板过滤器2014-09-02 04:39

首先给出方法:

# -*- coding: utf-8 -*-
from django.template import Library
register = Library()

# django模板中没有'world' in 'hello world'这样的
@register.filter
def contains(value, arg):
    return arg in value.decode('uft-8')
# 用法 {% if str|contains:'你' %}

#或者
def contains(value, arg):
    return arg in value.decode('uft-8')
register.filter(contains) 
#filter可加name参数

Django的模板并不像jinja2那样好用,如果把上面的代码直接放到views.py中是不行的。

做法如下:

在某个app目录下面新建一个文件夹templatetags,在templatetags目录新建init.py

然后新建一个myfilter.py【文件名自定】,放入上面代码

要重启服务器,才能把新加的filters载入到模板里-。-~

使用方法:

在html模板的顶部使用{% load myfilter %}之后就可以用{% if str|contains:'你' %}这样的过滤器了

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#   #django 阅读[2813] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

网友185.*.*.14[火星]2022-09-25 06:38
网友185.*.*.26[火星]2022-09-25 06:36
网友66.*.*.92[芒廷维尤]2022-09-25 06:31
网友40.*.*.73[美国]2022-09-25 06:25

发表评论