Lud*_*udo 8 django django-templates
是否可以创建一个评估为布尔值的Django模板标记?
我可以这样做:
{% if my_custom_tag %}
..
{% else %}
..
{% endif %}
Run Code Online (Sandbox Code Playgroud)
目前我已将其写为as标签,其工作正常如下:
{% my_custom_tag as var_storing_result %}
Run Code Online (Sandbox Code Playgroud)
但我只是好奇,如果我能以另一种方式做到这一点,因为我认为如果我不必先将结果分配给变量就更好了.
谢谢!
一种替代方法可能是定义一个返回布尔值的自定义过滤器:
{% if my_variable|my_custom_boolean_filter %}
Run Code Online (Sandbox Code Playgroud)
但是只有当你的标签依赖于其他模板变量时才会有效.
实际上......你可以做的是注册标签assignment_tag
而不是simple_tag
在你的模板中你可以做{% my_custom_tag as var_storing_result %}
一次然后定期,如果你想要评估布尔值的块.超级有用!例如
模板标签
def my_custom_boolean_filter:
return True
register.assignment_tag(my_custom_boolean_filter)
Run Code Online (Sandbox Code Playgroud)
模板
{% my_custom_boolean_filter as my_custom_boolean_filter %}
{% if my_custom_boolean_filter %}
<p>Everything is awesome!</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4961 次 |
最近记录: |