Django 模板自定义标记为布尔值
Django template custom tag as boolean
这似乎是一件很简单的事情,但我似乎无法让它为一个和两个工作,我似乎无法在网上获得关于它是否可以完成的直接答案.
我只想要一个可以像这样工作的简单标签
{% if my_tag %}
render something
{% else %}
render something else
{% endif %}
现在我不关心过滤器或任何其他你可以做同样事情的方法,我希望它看起来完全像那样,并且像描述的那样工作,我制作了一个简单的标签,它实际上可以做到return True 或 False 根据需要,如果我这样调用标签,它就会被调用
{% my_tag %}
但是,如果我在标签前添加一个 if,它不会被调用,这么简单和合乎逻辑的功能没有实现吗?
与潜在重复状态的 link 一样,您可以使用类似于以下内容的 assignment tag
将 return 当前时间:
@register.assignment_tag
def get_current_time(format_string):
return datetime.datetime.now().strftime(format_string)
在您的模板中,您可以做您想做的事:
{% if get_current_time %}
...show time
{% else %}
...don't show time
{% endif %}
这似乎是一件很简单的事情,但我似乎无法让它为一个和两个工作,我似乎无法在网上获得关于它是否可以完成的直接答案.
我只想要一个可以像这样工作的简单标签
{% if my_tag %}
render something
{% else %}
render something else
{% endif %}
现在我不关心过滤器或任何其他你可以做同样事情的方法,我希望它看起来完全像那样,并且像描述的那样工作,我制作了一个简单的标签,它实际上可以做到return True 或 False 根据需要,如果我这样调用标签,它就会被调用
{% my_tag %}
但是,如果我在标签前添加一个 if,它不会被调用,这么简单和合乎逻辑的功能没有实现吗?
与潜在重复状态的 link 一样,您可以使用类似于以下内容的 assignment tag
将 return 当前时间:
@register.assignment_tag
def get_current_time(format_string):
return datetime.datetime.now().strftime(format_string)
在您的模板中,您可以做您想做的事:
{% if get_current_time %}
...show time
{% else %}
...don't show time
{% endif %}