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)