Django if if выводит некоторый контент, когда контент не изменился - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь использовать тег ifзнака Django для вывода номеров счетов, только если они не совпадают с предыдущими.Эта часть действительно работает, и я не получу один и тот же номер счета дважды.Тем не менее, разрыв строки внутри блока ifchanged каждый раз выводится.Вот код:

<td>
  {% for obj in objects %} 
    {% ifchanged %} 
      {{ obj.row.invoice_no }}<br>
    {% endifchanged%}
  {% endfor %}
</td>

Поэтому, когда у меня есть два одинаковых номера счета-фактуры, вышеприведенный выводит:

<td>12345<br><br></td> вместо просто <td>12345<br></td>, что приводит к нежелательномудополнительная строка.

Я также попробовал следующий вариант, но результат был тот же:

<td>
  {% for obj in objects %} 
    {% ifchanged obj.row.invoice_no %} 
      {{ obj.row.invoice_no }}<br>
    {% endifchanged%}
  {% endfor %}
</td>

Любопытно, что если я просто выведу какой-то текст, если его изменить, кажется, будет оценен как истинный, потому чтонижеприведенная разметка выведет <td>has changed has changed</td>, даже если invoice_no одно и то же:

<td>
  {% for obj in objects %} 
    {% ifchanged obj.row.invoice_no %} 
      has changed
    {% endifchanged%}
  {% endfor %}
</td>

Таким образом, фактическое число или значение в переменной будут выводиться только тогда, когда они действительно изменились, но все остальное включено вКажется, что если измененный блок получит вывод, несмотря ни на что.Мне интересно, имеет ли значение, что фактический объект, значение которого сравнивается, отличается с каждой итерацией, даже если значение одинаково.Но, насколько я понимаю, тег ifchanged должен быть связан со сравнением значений, а не с тем, какой объект содержит значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...