有可能吗?
我知道过滤器,但是可以创建这样的东西:
{% if 75 is_divisible_by 5 %}
它看起来比看起来好很多:
{% if 75|is_divisible_by:5 %}
(这是一个概念问题,is_divisible_by只是一个例子)
答案 0 :(得分:0)
不,没有办法做你要问的事。
(注意:切向)但是,如果您只想呈现is_divisible_by 75 5
的值,则可以定义自定义模板标记。像这样:
@register.tag('is_divisible_by')
def is_divisible_by(_parser, token):
try:
_tag_name, dividend, divisor = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, \
"%r tag requires exactly two arguments" % token.contents.split()[0]
return IsDivisibleBynode(dividend, divisor)
class IsDivisibleBynode(template.Node):
def __init__(self, dividend, divisor):
self.dividend = template.Variable(dividend)
self.divisor = template.Variable(divisor)
def render(self, context):
return (int(self.dividend.literal) % int(self.divisor.literal) == 0)
然后可以在这样的模板中使用它:
<p>{% is_divisible_by 75 5 %}</p>
当然,这只会打印True
而不是您需要的内容。我找不到将其与if
条件相结合的方法。也许拥有更好模板标签的人可以告诉我们如何做到这一点。