【问题标题】:How to declare, initialize, and increment variable in django Template如何在 django 模板中声明、初始化和递增变量
【发布时间】:2017-06-27 07:59:18
【问题描述】:

这就是我想要的。我不是在谈论 forloop.counter。我的情况不是 forloop.counter 因为我需要有条件地增加它。

<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>

【问题讨论】:

  • 您认为为什么需要这样做?为什么不从视图中的 article_list 中排除未发表的文章?
  • 因为我是 django cms 的新手,并且其中没有视图或模型。你能指导我吗?

标签: django django-templates django-cms


【解决方案1】:

据我所知,Django 模板中没有声明变量。

您是否想过只在您的article_list 中传递已发表的文章。这将避免计数器的条件增加。您的模板不会为未发表的文章输出任何内容,是吗?

如果您的article_list 是您的views.py 文件中的查询集,则在为模板创建上下文时,您可能只需添加.filter(published=True)(如果不尝试[article for article in article_list if article.published] 代替article_list)。

您知道 forloop 计数器,并且您的 if 语句将显示为 {% if forloop.counter0 == 4 %}

顺便说一句,这是一个通用的 Django 属性。不需要 DjangoCMS。请参阅Django docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多