【问题标题】:how to loop 7 times in the django templates [duplicate]如何在 django 模板中循环 7 次 [重复]
【发布时间】:2011-07-11 16:50:24
【问题描述】:

这是我的代码:

{% for i in range(7)%}
        <option value={{i+1}}> {{i+1}}</option>
{% endfor %}

但它显示错误,

我能做什么,

谢谢

【问题讨论】:

标签: django templates


【解决方案1】:

在 python 中,字符串是可迭代的,所以这是可行的:

{% for i in "1234567" %}
    <option value={{i}}> {{i}}</option>
{% endfor %}

这是明确的,所以很好,但 zjm1126 的答案可能更适合长期考虑。

【讨论】:

  • 对原型设计非常有用,谢谢。
【解决方案2】:

views.py:

context['loop_times'] = range(1, 8)

html:

{% for i in loop_times %}
        <option value={{ i }}>{{ i }}</option>
{% endfor %}

【讨论】:

  • +1:最好把它放在视图中,但range(1, 8) 会更干净。
  • 为什么不直接通过范围?视图:context['loop_range'] = range(1, 8) 模板:{% for i in loop_range %} ... {% endfor %}
  • 喜欢简单,谢谢。奇怪的是,模板不支持这么简单的东西。
  • 我的问题是,如何添加此获取例如用户帖子?我只需要循环来自用户的三个帖子,那么如何在视图中添加范围?例如```posts = Post.objects.all(). Then in templates {% post in posts:"3" %}```。这是我的方法,但由于我的理解有限,我没有找到明确的答案。
【解决方案3】:

Django 模板不支持范围。你有几个选择:

  1. 添加范围过滤器:http://djangosnippets.org/snippets/1357/

添加自定义过滤器的方法如下:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

  1. 使用支持它的其他模板系统,例如 Mako。

http://docs.djangoproject.com/en/dev/ref/templates/api/#using-an-alternative-template-language Django-Mako 是一个使用 Mako 的快捷项目:http://code.google.com/p/django-mako/

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 2020-10-14
    • 2017-10-13
    • 2020-08-11
    • 1970-01-01
    • 2018-07-05
    • 2013-10-26
    • 1970-01-01
    相关资源
    最近更新 更多