是否可以将参数传递给django模板标签内的函数?
定义的类和函数:
class Bar():
def foo(self, value):
# do something here
return True
模板中的:
{% if my_bar.foo:my_value %}Yes{% endif %}
目前我收到一个TemplateSyntaxError“无法解析余数”
答案 0 :(得分:10)
您需要使用模板过滤器在文件中导入模板库:
from django import template
register = template.Library()
然后你需要在该文件中注册模板过滤功能:
@register.filter(name='foo')
然后在该文件中创建这样的过滤器函数:
@stringfilter
def foo(value):
value = #do something with value
return value #return value
然后将文件放在此层次结构中的应用程序中:
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/