索引模板中的上下文列表

时间:2014-07-07 12:49:29

标签: django

在我看来,我将一个上下文传递给一个模板,该模板包含一个(x,y)坐标的二维列表:

_points = [[100, 100], [200, 200], [300, 200]]
context = {'points': _points}
return render(request, 'mytemplate.html', context)

在我的模板中,我想在每个点之间画一条线:

var c = document.getElementById("graph"); // "graph" is a canvas element
var ctx = c.getContext("2d");
ctx.beginPath();
// Move to the first point
ctx.moveTo({{ points[0][0] }}, {{ points[0][1] }});
// Loop through all points and draw connecting line
{% for point in points %}
    ctx.lineTo({{ point[0] }}, {{ point[1] }});
{% endfor %}
ctx.stroke();

但是,我收到错误:

ctx.lineTo({{ point[0] }}, {{ point[1] }});

Could not parse the remainder: '[0]' from 'point[0]'

从上下文索引列表变量的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以就地解压缩此列表,如下所示:

{% for x, y in points %}
    ctx.lineTo({{ x }}, {{ y }});
{% endfor %}

(参见Django documentation for for

如果你想把它们拿出来"手写",你应该能够写{{ point.0 }} - 尽管我同意单一索引不起作用的说法很奇怪正确。