【问题标题】:how to create counter loop in django template?如何在 Django 模板中创建计数器循环?
【发布时间】:2011-07-01 23:14:56
【问题描述】:

谁能告诉我如何在 django 中编写下面的 c 代码

for(c=0; c<5; c++)
  //do something

我试过下面的代码,但它给了我一个错误

{% for(c=0; c<5; c++)%}
     <div class="tab-content">
    <h1 class="tab" title="title for page 1">Page 1</h1>
    <p>This is the content of tab 1 on container 1</p>
     </div>     
{% endfor %}

【问题讨论】:

  • -1,至少。到底是什么让你认为 Django 模板语言是 C?这在 Django 参考资料中都有非常清楚的记录。
  • 但是我遇到了错误,这就是我不得不问这么愚蠢的问题的原因。无论如何,如果你能写这个例子,那么请给我建议
  • 但是为什么不能看非常好的文档呢?你在那里发现的有什么问题?
  • 我尝试了很多网上给出的例子,例如code.djangoproject.com/ticket/5172 中给出的例子,但我不知道为什么我在这些例子中出错,写这样的问题的原因是读者可以很容易地理解我的问题
  • 这是一个功能请求,而不是文档。在使用示例之前阅读页面标题的内容。

标签: python django django-templates


【解决方案1】:

当你渲染你的模板时,你可以传递范围

render_to_response('template_x.html', {'range5': range(5)})

而在html模板中,大概是这样的

{% for i in range5 %}
    <div class="tab-content">
    <h1 class="tab" title="title for page {{i}}">Page {{i}}</h1>
    <p>This is the content of tab {{i}} on container {{i}}</p>
    </div>  
{% endfor %}

【讨论】:

    【解决方案2】:

    我猜你不擅长搜索,对吧(:

    A good documentation for a good framework... 另一方面,为什么在为 python 编写的框架中要求类似 c 的循环结构是另一个问题

    编辑:django 模板中的 For 循环遍历数组(或 Python 术语中的列表)。所以你必须有一个列表来迭代。在你的相关视图中,假设 yopu 有一个数字列表

    number_list = [1,2,3,4,5]
    

    如果您将此列表传递给具有相同名称的模板,那么您可以遍历它

    {%for num in nuber_list%}
        Number is : {{num}}
    {%endfor%}
    

    但正如我所说,您必须将该列表传递给 return 语句行中的模板,该语句返回一个 httpresponse 或将您的内容呈现给您的模板as it described in here

    【讨论】:

      【解决方案3】:

      我很好奇并找到了一种方法来做到这一点。免责声明:我认为以下代码是错误

      {% for i in "abcde" %} do something {% endfor %}
      

      将“abcde”替换为所需范围的字符串。

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 2012-12-01
        • 2019-05-23
        • 2018-05-10
        • 2015-08-21
        • 1970-01-01
        • 1970-01-01
        • 2013-10-26
        • 2012-01-21
        相关资源
        最近更新 更多