django x ++ в шаблоне - PullRequest
       9

django x ++ в шаблоне

0 голосов
/ 23 сентября 2018

это мой код:

{% for d in do %}
{% x=0 %}
 <tr class="{{ class.x }}">
{% x++ %}
  <td>{{ d.year }}/{{ d.month }}/{{ d.day }}</td>
  <td>{{ d.customer }}</td>
  <td>{{ d.cost }} تومان</td>
  <td>{{ d.forwhat }}</td>
  <td>{{ d.description }}</td>
 </tr>
{% endfor %}

как я могу сделать x++ в шаблоне?
Я получаю данные из базы данных и сортирую по году, месяцу и дню.Теперь я хочу, чтобы каждый d добавлял 1 к x и вызывал class.x данные из

class: ['red', 'yellow', 'green', ...]

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы можете использовать цикл :

<table>
{% for x in z %}
 <tr class="{% cycle "red" "blue" "green" %}">
  <td>{{ x }}</td>
 </tr>
{% endfor %}

</table>
<style>
.red {
  background-color: red;
}
.blue {
  background-color: blue;
}
.green {
  background-color: green;
}
</style>

Результат:

enter image description here

Хотя яне уверен, что это самый элегантный способ решения проблемы.

0 голосов
/ 23 сентября 2018

Вы должны поместить x вне цикла.

{% with x=0 %}
{% for d in do %}
<tr class="{{ class.x }}">
{% x++ %}
  <td>{{ d.year }}/{{ d.month }}/{{ d.day }}</td>
  <td>{{ d.customer }}</td>
  <td>{{ d.cost }} تومان</td>
  <td>{{ d.forwhat }}</td>
  <td>{{ d.description }}</td>
 </tr>
{% endfor %}
{% endwith %}

или вы можете использовать {{ forloop.counter }} внутри цикла.

...