title: Django REST framework: type object X has no attribute 'get_extra_actions'
body: <p>Ubuntu LTS, Python 3.6.x, Django 2.2.1, DRF 3.9.3</p>
  
  <p>I started with the DRF quickstart. Worked fine.</p>
  
  <p>Jumped into the <a href="https://www.django-rest-framework.org/tutorial/3-class-based-views/#using-generic-class-based-views" rel="noreferrer">DRF tutorial, step 3 on using generic class based views</a> I'm getting this error when trying <code>manage.py runserver</code></p>
  
  <pre><code>File "/home/ubuntu/src/rasi/rais/instances/urls.py", line 11, in &lt;module&gt;
      path('api/', include(router.urls)),
    File "/home/ubuntu/.virtualenv/managed-research-prod/lib/python3.6/site-packages/rest_framework/routers.py", line 125, in
  urls
      self._urls = self.get_urls()
    File "/home/ubuntu/.virtualenv/managed-research-prod/lib/python3.6/site-packages/rest_framework/routers.py", line 386, in
  get_urls
      urls = super(DefaultRouter, self).get_urls()
    File "/home/ubuntu/.virtualenv/managed-research-prod/lib/python3.6/site-packages/rest_framework/routers.py", line 284, in
  get_urls
      routes = self.get_routes(viewset)
    File "/home/ubuntu/.virtualenv/managed-research-prod/lib/python3.6/site-packages/rest_framework/routers.py", line 200, in
  get_routes
      extra_actions = viewset.get_extra_actions()
  AttributeError: type object 'InstanceList' has no attribute 'get_extra_actions'
  </code></pre>
  
  <p>I've only made the minimal changes to my code base in order to implement the recommendations by the tutorial. </p>
  
  <p>It's not obvious what I've done wrong, and there's not a lot of information around <code>get_extra_actions</code> when I read the <a href="https://www.django-rest-framework.org/api-guide/generic-views/#listcreateapiview" rel="noreferrer">ListCreateAPIView</a> guide, and not a lot that seems obviously comparable when looking elsewhere</p>
  
  <p><strong>urls.py</strong></p>
  
  <pre><code>from django.urls import include, path
  from rest_framework import routers
  from . import views
  
  router = routers.DefaultRouter()
  router.register(r'users',views.UserViewSet)
  router.register(r'instances',views.InstanceList)                                                                            
  
  urlpatterns = [ 
      path('', views.dash, name='dash'),
      path('api/', include(router.urls)),
  ]
  </code></pre>
  
  <p><strong>models.py</strong></p>
  
  <pre><code>class User(AbstractUser):
      email = models.EmailField()
      dept = models.CharField(max_length=400)
      display_name = models.CharField(max_length=200)
  
  class Instance(models.Model):
      name = models.CharField(max_length=200)
      flavour = models.CharField(choices=FLAVOUR_CHOICES, max_length=20)
      os = models.IntegerField(choices=OS_CHOICES)
      hostname = models.CharField(max_length=200)
      allocation_manager = models.ForeignKey(
          settings.AUTH_USER_MODEL,
          blank=True,
          null=True,
          on_delete=models.SET_NULL,
          related_name='manager')
      allocation_notes = models.TextField(blank=True,null=True)
      requested_by = models.ForeignKey(
          settings.AUTH_USER_MODEL,
          blank=True,
          null=True,
          on_delete=models.SET_NULL,
          related_name='requestor')
  </code></pre>
  
  <p><strong>serializer.py</strong></p>
  
  <pre><code># Serializers define the API representation.
  class UserSerializer(serializers.HyperlinkedModelSerializer):                                                               
      class Meta:
          model = User
          fields = ('url', 'username', 'email', 'is_staff')
  
  class InstanceSerializer(serializers.HyperlinkedModelSerializer):
      allocation_manager = UserSerializer()
      requested_by = UserSerializer()
  
      class Meta:
          model = Instance
          fields = ('name', 'flavour', 'hostname', 'allocation_manager','requested_by')
  </code></pre>
  
  <p><strong>views.py</strong></p>
  
  <pre><code># Serializer Views
  # ViewSets define the view behavior.
  
  class UserViewSet(viewsets.ModelViewSet):
      queryset = User.objects.all()
      serializer_class = UserSerializer
  
  class UserList(generics.ListCreateAPIView):
      queryset = User.objects.all()
      serializer_class = UserSerializer
  
  class InstanceList(generics.ListCreateAPIView):
      queryset = Instance.objects.all()
      serializer_class = InstanceSerializer
  </code></pre>
  
  <p>Note/Edit: I've found <a href="https://stackoverflow.com/questions/53490405/how-do-you-craete-a-django-rest-framework-listcreateapiview">some questions, but few solutions</a>.</p>