【问题标题】:conditionally change django template variable有条件地更改 django 模板变量
【发布时间】:2017-09-25 09:36:12
【问题描述】:

tl;博士

我需要一个模板变量来通过串联字符串来改变。

我的问题

我在我的模板中循环一个查询集,并在循环内检查对象上的某些字段是否与当前的user 匹配。如果是这样,那么我的变量会发生变化并最终作为class 应用于元素。

{% for item in items %}
    {% with class="" %}
        {% if request.user == item.field1 %}
            /* append to class variable, ex: class=" field1" */
        {% endif %}
        {% if request.user == item.field2 %}
            /* append to class variable, ex: class=" field1 field2" */
        {% endif %}

        <div class="{{class}}"></div>
    {% endwith %}
{% endfor %}

所以,如果我的request.user 等于item.field1item.field2,那么我的元素将如下所示:

<div class=" field1 field2"></div>

如果我的request.user 仅等于item.field2,那么我的元素将如下所示:

<div class=" field2"></div>

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    你不能在 Django 模板语言中做到这一点。您可能会写一个标签,但我不明白您为什么要这样做;你可以内联完成整个事情。

    <div class="{% if request.user == item.field1 %}field1{% endif %} {% if request.user == item.field2 %}field2{% endif %}"></div>
    

    【讨论】:

    • 它实际上是一个 include 标签,我将类传递到其中,而不是 div。这就是为什么我没有内联。我只需要改变我正在做的事情就可以做到这一点。
    猜你喜欢
    • 2023-04-03
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 2021-03-14
    • 2015-03-01
    • 2010-11-10
    相关资源
    最近更新 更多