django 自定义标签

Context和RequestContext都能被Template 进行render

RequestContext类接受reqest,字典,processors 实例化。并被TEMPLATE_CONTEXT_PROCESSORS处理。。

render_to_response 接受模板,字典,context_instance参数,接受一个Context类为参数

 

创建一个模板库分两步走: 

第一,决定模板库应该放在哪个Django应用下。 如果你通过 manage.py startapp 创建了一个应用,你可以把它放在那里,或者你可以为模板库单独创建一个应用。 我们更推荐使用后者,因为你的filter可能在后来的工程中有用。

无论你采用何种方式,请确保把你的应用添加到 INSTALLED_APPS 中。 我们稍后会解释这一点。

第二,在适当的Django应用包里创建一个 templatetags 目录。 这个目录应当和 models.py 、 views.py 等处于同一层次。 例如:

books/
    __init__.py
    models.py
    templatetags/
    views.py
在 templatetags 中创建两个空文件: 一个 __init__.py (告诉Python这是 一个包含了Python代码的包)和一个用来存放你自定义的标签/过滤器定义的文件。 第二个文件的名字稍后将用来加载标签

代码:
from django import template
register = template.Library()
def cut(value, arg):
    "Removes all values of arg from the given string"
    return value.replace(arg, '')

或者:
@register.filter(name='cut')
def cut(value, arg):
    return value.replace(arg, '')



posted @ 2013-07-12 09:38  Come~on!  阅读(268)  评论(0编辑  收藏  举报