使用if,for,for和math-add的Django模板操作

时间:2018-10-10 13:20:39

标签: python-2.7 django-templates django-1.9

我正在尝试在Django模板中形成表格。一行将是白色,另一行将是灰色...它将继续这样。因此,表行将显示为1白色行,1灰色行。因此,它将更具可读性。我试图设置一个整数变量,以决定在哪种条件下行将是哪种颜色。颜色在class =“ tr1”和class =“ tr2” css类中确定。但是它总是设置class =“ tr1”。因此,如果条件正常,则始终为1。无法解决。

{% with 0 as num %}

{% for note in notes %}  

    {% if num == 0 %}
    <tr class="tr1">
      <td class="td_size1">{{note.teacher__name}}</td>
      <td class="td_size1">{{note.attendance}}</td>
      <td class="td_size1">{{note.time}}</td>
      <td class="td_size1">{{note.dailynote}}</td>
    </tr>
    {{ num|add:1 }}
    {% endif %}


    {% if num == 1 %}
    <tr class="tr2">
      <td class="td_size1">{{note.teacher__name}}</td>
      <td class="td_size1">{{note.attendance}}</td>
      <td class="td_size1">{{note.time}}</td>
      <td class="td_size1">{{note.dailynote}}</td>
    </tr>
    {{ num|add:-1 }}
    {% endif %}

{% endfor %}

{% endwith %}

1 个答案:

答案 0 :(得分:0)

我通过使用CSS解决了这个问题。还有一个javascript解决方案,但是如果禁用了javascript则无法使用。在CSS中,它检查,是奇数还是偶数。如果是奇数,它将给出第一种颜色,如果是偶数,它将给出第二种颜色。

table.custom1 {
    font-family: arial, sans-serif !IMPORTANT;
    border-collapse: collapse !IMPORTANT;
    width: 100% !IMPORTANT;
}

td.custom1, th.custom1 {
    border: 1px solid #511327 !IMPORTANT;
    text-align: left !IMPORTANT;
    padding: 4px !IMPORTANT;
}

tr.custom1:nth-child(even) {
    background-color: #701b36 !IMPORTANT;
}

tr.custom1:nth-child(odd) {
    background-color: #5e172e !IMPORTANT;