zjm*_*126 50 python django templates
这是我的代码:
{% for i,j in enumerate(a) %}
{{i}} ,{{j}}
{% endfor%}
Run Code Online (Sandbox Code Playgroud)
但是,它显示错误,我认为它无法运行该enumerate方法,
那么如何运行enumerate django模板,
谢谢
Joe*_*way 70
模板子系统在for/endfor块中内置了一些特殊结构,允许您访问循环的当前索引而无需调用enumerate.
{% for j in a %}
{{ forloop.counter0 }}, {{ j }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
虽然这个片段解决了您的直接问题,但如果您希望能够访问Django模板中的Python内置函数和其他Python构造,那么您可能会误解它提供/强制执行的沙箱.
{% for item in a %}
{{ forloop.counter }}, {{ item }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
Django模板构成表示层,不适用于逻辑.来自文档
如果您有编程背景,或者习惯于将编程代码直接混合到HTML中的语言,那么您需要记住,Django模板系统不仅仅是嵌入到HTML中的Python.这是设计的:模板系统用于表达表示,而不是程序逻辑.
现在要在Django中获得相同的功能,您必须在视图中完成逻辑.
views.py
def my_view(request, ...):
....
enumerated_a = enumerate(a);
....
return render_to_response('my_template.html', {'enumerated_a ': enumerated_a }..)
Run Code Online (Sandbox Code Playgroud)
now enumerate函数返回一个可迭代的枚举对象.
my_template.html
{% for index, item in enumerated_a %}
{{ index }},{{ item }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
虽然我认为您可以将其更改为枚举列表并使用它.
| 归档时间: |
|
| 查看次数: |
17269 次 |
| 最近记录: |