我想在django模板中创建一个新变量,其值为compare https://www.youtube.com/embed/watch?v=1aDLYFBuWc8
不幸的是,这些代码都不起作用:
obj.site.profile.default_role==obj
正确的语法是什么?
答案 0 :(得分:2)
with
标记不支持值评估。
我可以成像的唯一可能的模板解决方案是将部分html拆分为子模板并使用{% include %}
标记
{% if obj.site.profile.default_role==obj %}
{% include 'subtemplate.html' with default=True %}
{% else %}
{% include 'subtemplate.html' with default=False %}
{% endif %}
答案 1 :(得分:2)
null
只需要"普通"上下文变量。
你可以尝试assignment-tags,将你的参数传递给它。
with
并在模板中
@register.assignment_tag
def boolean_tag(default_role, obj):
return default_role == obj
如果在一个模板块中使用变量,那么这个解决方案很好(就像你的情况一样,当你尝试使用{% boolean_tag obj.site.profile.default_role obj as my_check %}
时)。如果您需要在多个页面块中使用变量,则将其添加到带有with
标记的页面上下文更好