Mat*_*odd 10 django django-templates
是否可以将参数传递给django模板标记内的函数?
定义的类和功能:
class Bar():
def foo(self, value):
# do something here
return True
Run Code Online (Sandbox Code Playgroud)
在模板中:
{% if my_bar.foo:my_value %}Yes{% endif %}
Run Code Online (Sandbox Code Playgroud)
目前我收到一个TemplateSyntaxError"无法解析剩余部分"
rze*_*erg 10
您需要使用模板过滤器在文件中导入模板库:
from django import template
register = template.Library()
Run Code Online (Sandbox Code Playgroud)
然后,您需要在该文件中注册模板过滤器功能:
@register.filter(name='foo')
Run Code Online (Sandbox Code Playgroud)
然后在该文件中创建这样的过滤器函数:
@stringfilter
def foo(value):
value = #do something with value
return value #return value
Run Code Online (Sandbox Code Playgroud)
然后将文件放在此层次结构中的应用程序中:
app/
models.py
templatetags/
__init__.py
foo_functions.py
views.py
Run Code Online (Sandbox Code Playgroud)
然后在模板中加载你的foo_functions文件,你需要运行它:
{% load foo_functions %}
Run Code Online (Sandbox Code Playgroud)
然后你像这样使用foo:
{% if my_value|foo %}Yes{% endif %}
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读更多相关信息:
http://docs.djangoproject.com/en/dev/howto/custom-template-tags/
| 归档时间: |
|
| 查看次数: |
9175 次 |
| 最近记录: |