【问题标题】:How to Include while loop inside template file in Django [duplicate]如何在Django的模板文件中包含while循环[重复]
【发布时间】:2018-07-05 21:53:56
【问题描述】:

我需要在模板文件中渲染 5 次 html 代码块。就像在 php 中我尝试了类似下面的东西,

{% extends 'stories/base.html' %}
{% block body %}
<h1>This is rating page</h1>

<section class='rating-widget'>
  {% with count = 0 %}
  {% while count < 5: %}
      <div class='rating-stars text-center'>
          <ul class='stars'>
              <li class='star selected' title='Poor' data-value='1'>
                  <i class='fa fa-star fa-fw'></i>
              </li>
              <li class='star selected' title='Fair' data-value='2'>
                  <i class='fa fa-star fa-fw'></i>
              </li>
              <li class='star selected' title='Good' data-value='3'>
                  <i class='fa fa-star fa-fw'></i>
              </li>
              <li class='star selected' title='Excellent' data-value='4'>
                  <i class='fa fa-star fa-fw'></i>
              </li>
              <li class='star selected' title='WOW!!!' data-value='5'>
                  <i class='fa fa-star fa-fw'></i>
              </li>
          </ul>
      </div>
        {% count += 1 %}
      {% endwhile %}
  {% endwith %}
</section> 

但我无法得到预期的结果。它给了我语法错误“'with'期望至少一个变量赋值”。这是可能的还是在 django 中实现这种循环的正确方法是什么?

【问题讨论】:

  • 您不能在 Django 模板语言中增加变量。我链接到的duplicate question 有几个建议。对于循环 5 次,{% for i in 'xxxxx' %} 是最简单的。对于更大的数字,我喜欢times 过滤器的建议。
  • @Alasdair 谢谢。它有效且简单。有很多东西要学:)。

标签: python django


【解决方案1】:

由于{% with %} 模板标签解析变量赋值的方式,您需要删除count = 0 部分之间的空格。

【讨论】:

  • 这将解决with 标签的问题,然后您将立即在下一行{% while count &lt; 5: %} 上收到错误消息。关键是在Django模板语言中你不能做这种事情。
  • @ptr 感谢您的回答。
猜你喜欢
  • 2012-06-11
  • 1970-01-01
  • 2011-07-11
  • 2020-10-14
  • 2013-04-16
  • 2010-10-28
  • 2023-03-29
  • 2017-03-07
相关资源
最近更新 更多