自定义一个html标签参考:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/第一步:在app下创建templatetags包,也就是本案例的bbs下创建templatetags包如下:bbs/templatetags/__init__.pybbs/templatetags/poll_extras.py第二步:编写poll_extras.py文件,编写成你需要的标签,下面编写的是,把数据转为大写字母fromdjangoimporttemplate###必须应用template模块register=template.Library()@register.filterdeftest_tag(data):print'tag:::',datareturndata.upper()第三步:在引用的html文件中使用{%loadpoll_extras%}第四步:在html中应用这个标签,如下:把作者名称改为大写,它不能解析html内容<a>{{article.author.name|test_tag}}</a>##这中调用方式用于@register.filter装饰器,如果是@register.simple_tag这种装饰器就需要用下面的调用方法,且这中装饰器可以解析html格式<a>{%test_tag2article.author.name%}</a>



fromdjango.utils.safestringimportmark_safefromdjangoimporttemplate###必须应用template模块register=template.Library()@register.filterdeftest_tag(data):print'tag:::',datareturndata.upper()@register.simple_tagdeftest_tag2(data):print'tag:::',data#returndata.upper()a='<h2>%s</h2>'%data##@register.simple_tag可以解析html返回,,returnmark_safe(a)##在新版的django中,如果需要用@register.simple_tag解析html文本,需要额外添加:fromdjango.utils.safestringimportmark_safe这个make_safe模块才可以如果是@register.simple_tag这种装饰器就需要用下面的调用方法,且这中装饰器可以解析html格式<a>{%test_tag2article.author.name%}</a>