SchemaGenerator fails with message "object has no attribute 'get_serializer_class'" · Issue #4265 · encode/django-rest-framework (original) (raw)

I just upgraded to 3.4.0 of django-rest-framework. In my application i have a API view which doesn't have a GET method implemented only POST is there.

Now i am trying to auto generate the schema using the tutorial given. Here is my code for the schema view.

from rest_framework.decorators import api_view, renderer_classes
from rest_framework import renderers, schemas

@api_view()
@renderer_classes([renderers.CoreJSONRenderer, ])
def schema_view(request):
    generator = schemas.SchemaGenerator(title='Bookings API')
    return generator.get_schema()

Now when i try to view this schema i am getting this error.

Traceback (most recent call last):
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/views.py", line 466, in dispatch
    response = self.handle_exception(exc)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/views.py", line 463, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/decorators.py", line 52, in handler
    return func(*args, **kwargs)
  File "/home/ashish/Projects/backend/oyster/config/swagger.py", line 7, in schema_view
    generator = schemas.SchemaGenerator(title='Bookings API')
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/schemas.py", line 74, in __init__
    self.endpoints = self.get_api_endpoints(patterns)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/schemas.py", line 128, in get_api_endpoints
    prefix=path_regex
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/schemas.py", line 121, in get_api_endpoints
    link = self.get_link(path, method, callback)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/schemas.py", line 196, in get_link
    fields += self.get_serializer_fields(path, method, callback, view)
  File "/home/ashish/Env/backend/lib/python3.4/site-packages/rest_framework/schemas.py", line 256, in get_serializer_fields
    serializer_class = view.get_serializer_class()
AttributeError: 'LogoutView' object has no attribute 'get_serializer_class'

Here is my LogoutView class..

class LogoutView(APIView):
    permission_classes = (AllowAny,)

    def post(self, request):
        return self.logout(request)

    def logout(self, request):
        try:
            request.user.auth_token.delete()
        except (AttributeError, ObjectDoesNotExist):
            pass

        logout(request)

        log.info('Logout Successful | %s' % request.user)
        content = {'success': settings.USERS_LOGOUT_MSG}
        return Response(content, status=status.HTTP_200_OK)