开发环境:ubuntu14.10 python3.5 django1.8
本篇要点:
• Creating custom template tags and filters
• Adding a sitemap and a post feed (暂时不写)
• Building a search engine with Solr and Haystack(暂时不写)
1、自定义template 标签:(1+2步):
PS:自定义的template标签有三种类型:
• simple_tag : Processes the data and returns a string
• inclusion_tag : Processes the data and returns a rendered template
• assignment_tag : Processes the data and sets a variable in the context
处理方法大同小异:
zero:建好目录和文件:在blog的这个app应用下新建templatetags文件夹,在该文件夹下,新建__init .py(init右边还要两下滑线,markdown显示不出来),再新建blog_tags.py(主要在这个文件中编辑新标签)
准备工作就绪,开始干活:
simple_tag-first:在blog_tags.py中添加:
from django import template
from ..models import Post
register = template.Library()
#这里的simple_tag可以理解为django对自定义标签的分类之一
@register.simple_tag
#这里的total_posts是会在html中使用的标签名
def total_posts():
return Post.published.count()
simple_tag-second:在html中使用标签,这里是在/blog/templates/blog/base.html中添加:
<p>This is my blog. I've written {% total_posts %} posts so far.</p>
总体来说,自定义标签使用还是挺方便的