【发布时间】:2015-06-19 08:43:53
【问题描述】:
我想在 django 模板中创建一个新的变量,它会有一个比较的值
obj.site.profile.default_role == obj
不幸的是,这些代码都不起作用:
{% with obj.site.profile.default_role==obj as default %}{% endwith %}
{% with default=obj.site.profile.default_role==obj %}{% endwith %}
正确的语法是什么?
【问题讨论】:
-
你不只是想做:
{% with default=obj.site.profile.default_role %}吗?您为什么要尝试将其与对象本身进行比较?它永远不会相等。 -
... 我向你保证,我现在需要什么 ;) 但为了争论,让我们假设,我要
{% with x==y as boolean_variable %} -
为什么不在视图中进行比较,然后将
boolean_variable发送到视图? -
@Gocht:我可以做到,但我想知道解决方案(如果存在的话),而不是解决方法;)
-
with将一个或多个值添加到上下文以进行缓存和轻松访问。 它尚未准备好评估表达式。正如@Gocht 解释的那样,您应该在视图中而不是在模板中烹饪值。在视图上烹饪值不是一种解决方法;)查看源代码:github.com/django/django/blob/…
标签: python django django-templates