2017-08-31 243 views
-1

我有一个views.py如下返回值:Django模板标签

[{'host_id': 1, 'count': 8}, {'host_id': 3, 'count': 1}, {'host_id': 5, 'count': 3}] 

如何使用{用于%} ... {%ENDFOR%} ... {%其他%}标签在HTML?

如果循环不匹配值,默认值为0值设置

此代码是我的猜想......

它似乎不工作,我该怎么办?

<tr> 
    <td> 
    {% for i in count_result %} 
     {% if i.host_id == request.session.user.hid %} 
      {{ i.count }} 
     {% endif %} 
    {% endfor %} 
    {% else %} 
     0 
    </td> 
</tr> 

谢谢!

+0

此处“{%else%}”的功能是什么?喜欢你的代码不给全部? – aircraft

+0

抱歉,{%else%}被设置为默认值。这个代码是我的猜测...它似乎不工作 – Yort

回答

1

从文档:https://docs.djangoproject.com/ko/1.11/ref/templates/builtins/#for

循环数组中的每一项,使得在一个上下文变量可用的项。例如,为了显示在athlete_list提供运动员的列表:

<ul> 
{% for athlete in athlete_list %} 
    <li>{{ athlete.name }}</li> 
{% endfor %} 
</ul> 

可以循环遍历反向列表通过使用{%为在列表中的obj逆转%}。

如果您需要遍历列表的列表,可以将每个子列表中的值解压缩为单个变量。例如,如果你的上下文包含坐标称为点(X,Y)的列表,你可以使用下面的输出点列表:

{% for x, y in points %} 
    There is a point at {{ x }},{{ y }} 
{% endfor %} 

,如果你需要访问的项目这也有用在字典中。例如,如果您的上下文包含字典数据,则以下内容将显示字典的键和值:

{% for key, value in data.items %} 
    {{ key }}: {{ value }} 
{% endfor %}