Django模板For循环:你如何为第一条记录执行操作?

时间:2009-08-15 02:13:04

标签: django django-templates

我知道django故意不允许模板中有很多逻辑。但是,有时您需要评估某些内容并根据更改您的选项。

如何更改模板中的值或仅在第一条记录中插入内容?但是你仍然想要完成其余的工作。例如,我的模板代码如下:

    {% for object in object_list %}
     <div id="t{{ object.id }}-header" class="content_headings title_highlight" >{{ object.title }}</div>
     <div id="t{{ object.id }}-content">
         ......

PHP模板中的类似代码:

<div id="t<?php if ($i != 1) { echo $i-1; } ?>-header" class="content_headings<?php if ($i == 1) { ?> title_highlight<?php } ?>" ><?php the_title(); ?></div>  
<div id="t<?php if ($i != 1) { echo $i-1; } ?>-content">

2 个答案:

答案 0 :(得分:7)

forloop.first是要走的路。我认为您需要做的只是稍微改变Tiago的答案,并得到类似的结果:

{% for object in object_list %}
    <div id="t{% if not forloop.first %}{{ object.id }}{% endif %}-header" class="content_headings{% if forloop.first %} title_highlight{% endif %}">
        {{ object.title }}
    </div>
    <div id="t{% if not forloop.first %}{{ object.id }}{% endif %}-content">
{% endfor %}

我已经检查过你的PHP代码,它似乎做的几乎完全相同(我不是从{{ object.id }}取1,因为只要ID是唯一的,它就不会有所作为,右?)

答案 1 :(得分:2)

{% for object in object_list %}
<div id="t{{ object.id }}-{%if forloop.first%}header{%else%}content{%endif%}" class="content_headings title_highlight" >{{ object.title }}</div>
...