Django Custom template tags
2011-05-20
用 Django 开发 template 中的 tag 已经定义了很多常用的功能。然而必要时候还是的扩展她的功能。
在 app/templatetags 目录下建立 mytags.py 文件(没有templatetags目录请自行建立)
mytags.py 源代码如下:
from django import template
#import datetime
register = template.Library()
def do_user(parser, token):
bits = token.split_contents()
if len(bits) < 2:
raise TemplateSyntaxError(" get_userProfile must one args %s" % token.contents)
v = bits[1]
var = parser.compile_filter(v)
return userNode(var)
class userNode(template.Node):
def __init__(self,user):
self.user = user
def render(self, context):
user = self.user.resolve(context, True)
return user
register.tag('get_userProfile', do_user)
在tmplate中使用tags:
{# 载入tags #}
{% load qintags %}
{# 调用tag #}
{% get_userProfile user %}