首先在app下创建templatetags文件;名字不许叫这个,不能改变。
文件名自定义
注意点:
from django import template from django.utils.safestring import mark_safe
register = template.Library()
注意:
名字必须叫这个register
,不能更改。
装饰器的名字:
@register.simple_tag
方法写完要将具体的数据通过retunr
返回。
上面图片中我们看到返回数据的时候加了和mark_safe()方法。
说明:
正常我们返回的是字符串,直接显示在页面上也是字符串
。如果我们想返回一些
标签
,标签相对浏览器来说,的有渲染效果,那么我们就必须通过mark_safe()
方法将要返回的数据进行转化,然后返回后,标签就具有本身的效果。
{% load 文件名 %}
规则:
{% 方法名 参数1 参数2 %}
注意:
1、可以接收多个参数,用空格
隔开。
2、这个定义的模板语言不能和判断语言
组合,不然执行不了。
filter
自定义模板的步骤和simple_tags
的步骤是一样的,可以参考前面。
filter和simple_tags的区别:
filter:
@register.filter
simple_tags
定义的方法能接收多个参数
。filter
定义的方法最多只能接收2个参数
。
filter的规则:
{% 参数1|方法:"参数2" %}
说明:
filter定义的方法可以和判断语和在一起使用。
filter定义的方法还可以直接通过双花”{{ }}“括号使用。
filter定义的方法要想接收多个数据,只能将数据作通过指定的符号
组合成字符串
,然后传入,再在方法中通过符号进行分割
来获取。
原文:http://www.cnblogs.com/jayafs/p/6250687.html