首页 > 代码库 > 自定义django模板的 tags和filters
自定义django模板的 tags和filters
Custom template tags and filters
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
有一个应用polls结构如下,如何自定义templatetags
polls/ __init__.py models.py templatetags/ __init__.py poll_extras.py views.py
一,安装polls
INSTALLED_APPS = [ ..... ‘polls‘ ]
二,新建templatetags
在polls目录下新建一个templatetags目录,目录下创建一个空文件__init__.py以让python识别到其是一个包
1.自定义filter
from django import templateregister = template.Library() @register.filter(name=‘cut‘) def cut(value, arg): return value.replace(arg, ‘‘) @register.filter def lower(value): return value.lower()
2.tag
开启takes_context,可以访问当前上下文context
import datetime from django import template register = template.Library() @register.simple_tag(takes_context=True) def current_time(context, format_string):#context接收当前页面的上下文字典 timezone = context[‘timezone‘] return your_get_current_time_method(timezone, format_string)
3.Inclusion tags
直接导入渲染过的模板到页面
#results.html
<ul> {% for choice in choices %} <li> {{ choice }} </li> {% endfor %} </ul>
@register.inclusion_tag(‘results.html‘) def show_results(poll): choices = poll.choice_set.all() return {‘choices‘: choices}
{% show_results poll %} //返回如下 <ul> <li>First choice</li> <li>Second choice</li> <li>Third choice</li> </ul>
本文出自 “quxf2012” 博客,请务必保留此出处http://quxf2012.blog.51cto.com/12149748/1891167
自定义django模板的 tags和filters
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。