Django 模板自定义标签为布尔值
Posted
技术标签:
【中文标题】Django 模板自定义标签为布尔值【英文标题】:Django template custom tag as boolean 【发布时间】:2015-03-03 06:34:36 【问题描述】:这似乎是一件很简单的事情,但我似乎无法让它为一个人工作,而且我似乎无法在网上得到一个直接的答案,无论它是否可以完成。
我只想要一个可以像这样工作的简单标签
% if my_tag %
render something
% else %
render something else
% endif %
现在我不关心过滤器或任何其他你可能能够做同样事情的方式,我希望它看起来完全一样,并且像描述的那样工作,我有一个简单的标签,实际上确实返回 True或 False 根据需要,如果我这样调用标签就会调用它
% my_tag %
但是,如果我在标签前添加 if,它不会被调用,是不是没有实现这么简单和合乎逻辑的功能?
【问题讨论】:
how to use custom django templatetag with django template if statement? 的可能重复项 这不是可能的重复它很可能是重复的,我再次问的原因是因为答案并没有真正回答关于天气的问题,或者实际上不可能做到,有如果给出的答案只是作者解决问题的方式,或者 django 无法拥有如此简单的工作流程,则没有真正的澄清 你见过这个吗? gist.github.com/xtranophilist/6637377 【参考方案1】:就像指向潜在重复状态的链接一样,您可以使用类似于以下的assignment tag
来返回当前时间:
@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 %
【讨论】:
以上是关于Django 模板自定义标签为布尔值的主要内容,如果未能解决你的问题,请参考以下文章