2017-02-09 21 views
0

Это то, что я хочу. Я не говорю о forloop.counter. Мое дело не в forloop.counter, потому что мне нужно увеличивать его условно.Как объявить, перевести intialize и increment в django Template

<div class="row text-left"> 
/////some counter=0 
    {% for article in article_list %} 

     /////{% if counter == 4 %} 
      </div> 
      <div class="row text-left"> 
     {% endif %} 

     {% if article.published %}enter code here 
    /////// counter++ 
     {% include "aldryn_newsblog/includes/general-article.html" %} 

     {% endif %} 

     {% empty %} 
      <p>{% trans "No items available" %}</p> 
    {% endfor %} 
</div> 
+3

Почему, по-вашему, вам нужно это делать? Почему вы не исключаете опубликованные статьи из статьи в списке? –

+0

Поскольку я новичок в django cms, и в нем нет ни представления, ни модели. Можете ли вы, пожалуйста, направить меня. –

ответ

0

Насколько я знаю, в шаблоне Django нет объявления переменных.

Вы думаете только об опубликованных публикациях в своем article_list. Это позволит избежать условного увеличения счетчика. Ваш шаблон не выводит ничего для неопубликованных статей или делает это?

Если ваш article_list является QuerySet в файле views.py вы можете просто добавить .filter(published=True) (если не пытаться [article for article in article_list if article.published] вместо если article_list) при создании контекста для шаблона.

Вы знаете счетчик forloop, и ваш оператор if будет читать {% if forloop.counter0 == 4 %}.

BTW, это общая собственность Django. Для этого не нужен DjangoCMS. См. Django docs.