{{ mylist.a }} means: get attribute "a" from object "mylist". For the 
template it doesn't matter if you have defind a variable "a", it will get 
the literal "a". Also see 
https://stackoverflow.com/questions/4651172/reference-list-item-by-index-withdoesin-django-template
 
<https://stackoverflow.com/questions/4651172/reference-list-item-by-index-within-django-template>
 for 
others with the same problem and a solution. You can add a template filter 
which *does* support variables. Your template will then look like {{ 
mylist|index:a }}. Credits to Bakuutin 
<https://stackoverflow.com/users/5313669/bakuutin> and WeizhongTu 
<https://stackoverflow.com/users/2714931/weizhongtu> for this specific 
example:

from django import template
register = template.Library()
@register.filterdef index(indexable, i):
    return indexable[i]


{% load index %}{{ mylist|index:a }}


I believe you will need to do the same if you want to access any property 
from that item, ie. {{ mylist|index:a }}.property doesn't work, you would 
need to write a new filter to be able to do {{ 
mylist|index:a|attr:"property" }}

Besides all this, is there a reason you cannot simply use a for-loop to 
iterate over mylist ?

{% for item in mylist %}

    {{ item.property }}

{% endfor %}



On Wednesday, 9 October 2019 10:16:18 UTC+2, Luca Bertolotti wrote:
>
> Hello in the view a hve a list
> mylist = ['aa','bb']
> n = range(len(mylist))
>
> return render(....{'mylist':mylist,'n':n,.....})
>
> in the template i do this:
>
> <tr>{% for a in n %} <td>{{ mylist.a }}</td></tr>
>
> it never show nothing, but if i do:
>
> <tr>{% for a in n %} <td>{{ mylist.0 }}</td></tr>
> it show 'aa'
>
> Where is the mistake?
>
> Thanks
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/2a47b2ff-5fc6-4c1d-91f1-79549d217ff0%40googlegroups.com.

Reply via email to