django Object not iterable error

3,412 views
Skip to first unread message

Shekar Tippur

unread,
Jun 15, 2015, 5:39:56 PM6/15/15
to django...@googlegroups.com



Hello,

This maybe a generic question. How do I troubleshoot something like this. The stacktrace is not really helpful as it does not point to the code that is causing this issue.

TypeError at /product/

'function' object is not iterable
Request Method:POST
Request URL:http://127.0.0.1:8000/product/
Django Version:1.8.2
Exception Type:TypeError
Exception Value:
'function' object is not iterable
Exception Location:/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/urlresolvers.py in resolve, line 238
Python Executable:/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4
Python Version:3.4.3
Python Path:
['/Users/ctippur/PycharmProjects/project1',
 '/Users/ctippur/PycharmProjects/project1',
 '/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip',
 '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
 '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
 '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload',
 '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages'

- Shekar

James Schneider

unread,
Jun 15, 2015, 6:07:37 PM6/15/15
to django...@googlegroups.com

Can you post the entire stack trace? You may have to run a bit up the chain in the race to track down the problem.

-James

--
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...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/3d689375-1afe-448e-95b4-54ecbab2cd77%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Shekar Tippur

unread,
Jun 15, 2015, 8:32:52 PM6/15/15
to django...@googlegroups.com
James,

Is this what you mean?

- Shekar
 
Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/product/

Django Version: 1.8.2
Python Version: 3.4.3
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'product',
)
Installed Middleware:
('disable.DisableCSRF',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
  119.                 resolver_match = resolver.resolve(request.path_info)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/urlresolvers.py" in resolve
  368.                     sub_match = pattern.resolve(new_path)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/urlresolvers.py" in resolve
  238.             kwargs.update(self.default_args)

Exception Type: TypeError at /product/

Vijay Khemlani

unread,
Jun 15, 2015, 8:52:52 PM6/15/15
to django...@googlegroups.com
No, you need to post the parts of your code that may have triggered the error.

In this case, your urls.py and the method in your views.py that handles the request probably.

--
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...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

Shekar Tippur

unread,
Jun 15, 2015, 8:58:15 PM6/15/15
to django...@googlegroups.com
Here my urls.py

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^product/$', productviews, productviews.ProductList.as_view()),
url(r'^product/(?P<pk>[0-9]+)$', productviews.ProductDetail.as_view()),
]

productviews.py

from product.models import Product
from product.serializers import ProductSerializer
from rest_framework import generics
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from django.http import HttpResponse
import json


class ProductList(generics.ListCreateAPIView):
queryset = Product
serializer_class = ProductSerializer
@method_decorator(csrf_exempt)
def post(self, request, *args, **kwargs):
received_json_data=json.loads(request.body.decode("utf8"))
serializer = ProductSerializer(data=received_json_data)
if serializer.is_valid():
serializer.save()
print (request.body)
return HttpResponse('SUCCESS')
else:
print (serializer.errors)
return HttpResponse('Error')

James Schneider

unread,
Jun 15, 2015, 9:28:15 PM6/15/15
to django...@googlegroups.com
That is what I meant, but the extra code is quite helpful. In your
urls.py file you have this:

url(r'^product/$', productviews, productviews.ProductList.as_view()),

when you probably want this:

url(r'^product/$', productviews.ProductList.as_view()),


You have an extra reference to 'productviews' as the second argument,
which makes the URL resolver unhappy since it is now trying to execute
the whole productviews module as a function.

-James
> --
> 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...@googlegroups.com.
> To post to this group, send email to django...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/3bd15344-357e-4a6c-a7a1-0a7ad5a1131d%40googlegroups.com.

Shekar Tippur

unread,
Jun 16, 2015, 12:46:22 AM6/16/15
to django...@googlegroups.com
Thank you! Thank you! Thank you!

Sometimes I miss the most obvious things.

Thanks again.

- Shekar 
Reply all
Reply to author
Forward
0 new messages