有条件地更改django模板变量 tl;博士
我需要一个模板变量来改变连接字符串的方式 我的问题 我在模板中循环查询集,在循环中检查对象上的某些字段是否与当前有条件地更改django模板变量 tl;博士,django,django-templates,Django,Django Templates,我需要一个模板变量来改变连接字符串的方式 我的问题 我在模板中循环查询集,在循环中检查对象上的某些字段是否与当前用户匹配。如果是这样,那么我的变量将发生变化,并最终作为类应用于元素 {% for item in items %} {% with class="" %} {% if request.user == item.field1 %} /* append to class variable, ex: class=" field1" */
用户匹配。如果是这样,那么我的变量将发生变化,并最终作为类应用于元素
{% 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.field2
,则我的元素如下所示:
<div class=" field1 field2"></div>
<div class=" field2"></div>
在Django模板语言中不能这样做。你可以写一个标签,但我不明白你为什么要写;你可以直接在线完成整个过程
<div class="{% if request.user == item.field1 %}field1{% endif %} {% if request.user == item.field2 %}field2{% endif %}"></div>
我将类传递到的实际上是一个include
标记,而不是div
。这就是为什么我没有做内联。我要做的就是改变我的做法,这样做。