Django elif模板标记渲染与常量

时间:2017-06-02 15:40:33

标签: python django

我正在尝试将字典值与常量进行比较,并且我注意到这些被区别对待,这取决于我是否使用if / elif语句,并且我只是将值直接与存储在其中的值进行比较不变。下面是一个示例,显示了上下文字典和模板的相关部分(仅选项2和3工作)。我在这里错过了一些关于为什么选项1不起作用的东西吗?

视图:

STATUS1 = 1
STATUS2 = 2
STATUS3 = 3

context = {
    'obj1': {
        'status': STATUS3, 
        'otherattrs': 'other stuff'
    },
    'STATUS1': STATUS1,
    'STATUS2': STATUS2,
    'STATUS3': STATUS3
}

选项1模板:

{% if obj1.status == STATUS1 %}
    button 1
{% elif obj1.status == STATUS2 %}
    button 2
{% elif obj1.status == STATUS3 %}
    button 3
{% endif %}

选项2模板:

{% if obj1.status == STATUS1 %}
    button 1
{% endif %}
{% if obj1.status == STATUS2 %}
    button 2
{% endif %}
{% if obj1.status == STATUS3 %}
    button 3
{% endif %}

选项3模板:

{% if obj1.status == 1 %}
    button 1
{% elif obj1.status == 2 %}
    button 2
{% elif obj1.status == 3 %}
    button 3
{% endif %}

1 个答案:

答案 0 :(得分:0)

无法重现您的问题,所有三种方法都为我输出button 3。您对选项1的结果如何?