title: TypeError while using django rest framework tutorial
body: <p>I am new to using Django Rest framework, i am following this tutorial 
      <a href="http://django-rest-framework.org/tutorial/1-serialization">Django-Rest-Framework</a></p>
  
  <p>Instead of snippets my model consists of a userprofile as given below:</p>
  
  <pre><code>class UserProfile(models.Model):
        user = models.OneToOneField(User)
        emp_code = models.CharField(max_length=10, blank=True)
        user_type = models.IntegerField(max_length=1, default=0, choices=USER_TYPE)
        group = models.ForeignKey(Group, null=True, blank=True)
        status = models.SmallIntegerField(max_length=1,default=0)
        added_on = models.DateTimeField(auto_now_add=True)
  </code></pre>
  
  <p>The first part of the tutorial ran fine, got the desired output in json format as mentioned, however the second tutorial onwards i am getting type error:</p>
  
  <pre><code>TypeError at /authentication/userprofile/
  'type' object is not iterable
  Request Method: GET
  Request URL:    http://*****.com/authentication/userprofile/
  Django Version: 1.6
  Exception Type: TypeError
  Exception Value:    
  'type' object is not iterable
  Exception Location: /home/web/cptm_venv/lib/python2.7/site-     packages/rest_framework/views.py in get_permissions, line 226
  Python Executable:  /usr/bin/python
  Python Version: 2.7.3
  Python Path:    
  ['/home/web/cptm_venv/lib/python2.7/site-packages',
   '/home/web/cptm',
   '/home/web/cptm_venv/lib/python2.7/site-packages',
   '/usr/lib/python2.7',
   '/usr/lib/python2.7/plat-linux2',
   '/usr/lib/python2.7/lib-tk',
   '/usr/lib/python2.7/lib-old',
   '/usr/lib/python2.7/lib-dynload',
   '/usr/local/lib/python2.7/dist-packages',
   '/usr/lib/python2.7/dist-packages',
   '/usr/lib/pymodules/python2.7']
   Server time:   Wed, 11 Dec 2013 17:33:54 +0530
   Traceback Switch to copy-and-paste view
  
  /home/web/cptm_venv/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
                  response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/django/views/generic/base.py in view
          return self.dispatch(request, *args, **kwargs) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/django/views/decorators/csrf.py in    wrapped_view
      return view_func(*args, **kwargs) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/rest_framework/views.py in dispatch
          response = self.handle_exception(exc) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/rest_framework/views.py in dispatch
          self.initial(request, *args, **kwargs) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/rest_framework/views.py in initial
      self.check_permissions(request) ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/rest_framework/views.py in   check_permissions
       for permission in self.get_permissions(): ...
  ▶ Local vars
  /home/web/cptm_venv/lib/python2.7/site-packages/rest_framework/views.py in get_permissions
      return [permission() for permission in self.permission_classes] ...
  ▶ Local vars
  </code></pre>
  
  <p>The rest of the code is almost same as given in the above link in 2nd part and 3rd part:
  views.py</p>
  
  <pre><code>from apps.authentication.models import UserProfile
  from apps.authentication.serializers import UserProfileSerializer
  from rest_framework import mixins
  from rest_framework import generics
  
  class UserProfileList(mixins.ListModelMixin,
                mixins.CreateModelMixin,
                generics.GenericAPIView):
      queryset = UserProfile.objects.all()
      serializer_class = UserProfileSerializer
  
      def get(self, request, *args, **kwargs):
          return self.list(request, *args, **kwargs)
  
      def post(self, request, *args, **kwargs):
          return self.create(request, *args, **kwargs)
  
  
  class UserProfileDetail(mixins.RetrieveModelMixin,
                  mixins.UpdateModelMixin,
                  mixins.DestroyModelMixin,
                  generics.GenericAPIView):
      queryset = UserProfile.objects.all()
      serializer_class = UserProfileSerializer
  
      def get(self, request, *args, **kwargs):
          return self.retrieve(request, *args, **kwargs)
  
      def put(self, request, *args, **kwargs):
          return self.update(request, *args, **kwargs)
  
      def delete(self, request, *args, **kwargs):
          return self.destroy(request, *args, **kwargs)
  </code></pre>
  
  <p>urls.py</p>
  
  <pre><code>from django.conf.urls import patterns, url
  from rest_framework.urlpatterns import format_suffix_patterns
  from apps.authentication import views
  
  urlpatterns = patterns('',
      url(r'^userprofile/$', views.UserProfileList.as_view()),
      url(r'^userprofile/(?P&lt;pk&gt;[0-9]+)/$', views.UserProfileDetail.as_view()),
  )
  
  urlpatterns = format_suffix_patterns(urlpatterns)
  </code></pre>
  
  <p>I am missing something very obvious, tried a lot to search what exactly the "type object not iterable" means in this context, and which object is causing the problem, but no luck. I am using Django Rest Framework version 2.3. </p>
  
  <p>Thanks in advance</p>