如何使用'模板标签保存与Django'的比较结果?

时间:2015-06-19 08:43:53

标签: python django django-templates

我想在django模板中创建一个新变量,其值为compare https://www.youtube.com/embed/watch?v=1aDLYFBuWc8

不幸的是,这些代码都不起作用:

obj.site.profile.default_role==obj

正确的语法是什么?

2 个答案:

答案 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标记的页面上下文更好