如何访问Django模板中的数组元素?

我得到了一个数组__abc0传递给我的Django模板。我想访问数组中数组的单个元素(例如,__abc1,__abc2)等。而不是在整个数组中循环。

有没有办法在Django模板中做到这一点?

171565 次浏览

You can access sequence elements with arr.0, arr.1 and so on. See The Django template system chapter of the django book for more information.

arr.0
arr.1

etc.

Remember that the dot notation in a Django template is used for four different notations in Python. In a template, foo.bar can mean any of:

foo[bar]       # dictionary lookup
foo.bar        # attribute lookup
foo.bar()      # method call
foo[bar]       # list-index lookup

It tries them in this order until it finds a match. So foo.3 will get you your list index because your object isn't a dict with 3 as a key, doesn't have an attribute named 3, and doesn't have a method named 3.

When you render a request to context some information, for example:

return render(request, 'path to template', {'username' :username, 'email' :email})

You can access to it on template, for variables

{% if username %}\{\{ username }}{% endif %}

for arrays

{% if username %}\{\{ username.1 }}{% endif %}
{% if username %}\{\{ username.2 }}{% endif %}

you can also name array objects in views.py and then use it as shown below:

{% if username %}\{\{ username.first }}{% endif %}