Passing a python list to django template

karambir picture karambir · Oct 6, 2012 · Viewed 17.6k times · Source

I want to display a list of things on my template. So I have a view to generate that list and pass it to template like this:

newlinks = []
try:
    links=urllib2.urlopen("<<Some HTML file link>>").readlines()
except (urllib2.HTTPError):
    links = ''
    pass
for link in links:
    newlinks.append(link[0:-1])                       
return render_to_response('template11.html', {'links',newlinks}, context_instance=RequestContext(request))

But while rendering it, i get TypeError

Exception Type: TypeError
Exception Value: unhashable type: 'list'

This is template code:

{% for link in links %}
    <li>{{ link }}</li>
{% endfor %}

I don't understand this error. Also if this approach is wrong(I think it is), then how would I pass a list to template?

Answer

Garrett Hyde picture Garrett Hyde · Oct 6, 2012

In return render_to_response(), {'links',newlinks} is causing the error. It should be {'links': newlinks}.