2011-05-04 100 views
9

是否可以将参数传递给django模板标签中的函数?django传递参数以在模板标签中起作用

定义的类和功能:

class Bar(): 

    def foo(self, value): 
     # do something here 
     return True 

模板:

{% if my_bar.foo:my_value %}Yes{% endif %} 

目前我得到一个TemplateSyntaxError “无法解析余数”

回答

9

您需要导入模板文件库中的模板过滤器:

from django import template 

register = template.Library() 

然后,你需要注册你的模板过滤功能在该文件中:

@stringfilter 
def foo(value): 
    value = #do something with value 
    return value #return value 

然后你把你的应用程序里面的文件:

@register.filter(name='foo') 

然后在该文件中创建过滤器的功能是这样该层次结构:

app/ 
    models.py 
    templatetags/ 
     __init__.py 
     foo_functions.py 
    views.py 

然后加载您foo_functions文件中,你需要运行这个模板:

{% load foo_functions %} 

然后使用FOO这样的:

{% if my_value|foo %}Yes{% endif %} 

你可以阅读更多关于此这里:

http://docs.djangoproject.com/en/dev/howto/custom-template-tags/