The type argument is not iterable

I wrote this simple method that works fine in the terminal, but every time I run it in the browser, I get: an argument of type "type" is not iterable.

def get_main(request): t = get_template('main.html') p = urllib2.urlopen("http://www.caltech.edu/news/rss.xml") x = minidom.parseString(p.read()) titles = x.getElementsByTagName("title") items_list = [] for title in titles: items_list.append(str(title.firstChild.nodeValue)) subscriptions_list = ['Caltech'] html = t.render(Context({'subscriptions_list': subscriptions_list, 'items_list': items_list})) return HttpResponse 

HTML:

 <body> <div class="wrap"> <div class="banner">Infobesity</div> <!-- Subscriptions --> <div class="subscriptionsDiv"> <ol class="subscriptionsList"> {% for subscription in subscriptions_list %} <li>{{ subscription }}</li> {% endfor %} </ol> </div> <!-- Subscriptions End --> <!-- Items --> <div class="itemsDiv"> <ol class="itemsList"> {% for item in items_list %} <li>{{ item }}</li> {% endfor %} </ol> </div> <!-- Items End --> </div> </body> 

Track:

  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 189. response = self.apply_response_fixes(request, response) File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in apply_response_fixes 237. response = func(request, response) File "/usr/local/lib/python2.7/dist-packages/django/http/utils.py" in fix_location_header 19. if 'Location' in response and request.get_host(): 
+4
source share
1 answer

You return an HttpResponse without calling it; it is a class and therefore does not repeat itself.

Perhaps you wanted to return html in response?

 return HttpResponse(html) 
+10
source

All Articles