This now results in this error
AssertionError: Cannot apply DjangoModelPermissionsOrAnonReadOnly on a view that does not set .queryset or have a .get_queryset() method
.queryset
.get_queryset()
This is what I ended up using:
def dispatch(self, request, *args, **kwargs): if not hasattr(self, 'VIEWS_BY_METHOD'): raise Exception( 'VIEWS_BY_METHOD static dictinary must be defined') if request.method in self.VIEWS_BY_METHOD: # pylint: disable=E1101 return self.VIEWS_BY_METHOD[ # pylint: disable=E1101 request.method ]()(request, *args, **kwargs) response = Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) if not getattr(request, 'accepted_renderer', None): neg = self.perform_content_negotiation(request, force=True) request.accepted_renderer, request.accepted_media_type = neg response.accepted_renderer = request.accepted_renderer response.accepted_media_type = request.accepted_media_type response.renderer_context = self.get_renderer_context() return response
I had the same issue and found that using a predefined Response type instead of the general Response class fixed it.
E.g.
from django.http import JsonResponse def dispatch(self, request, *args, **kwargs): if not hasattr(self, 'VIEWS_BY_METHOD'): raise Exception( 'VIEWS_BY_METHOD static dictinary must be defined') if request.method in self.VIEWS_BY_METHOD: # pylint: disable=E1101 return self.VIEWS_BY_METHOD[ # pylint: disable=E1101 request.method ]()(request, *args, **kwargs) return JsonResponse(data={}, status=status.HTTP_405_METHOD_NOT_ALLOWED)
I haven't tested others, but I assume this would work equally well with an HttpResponse or whichever.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
This now results in this error
AssertionError: Cannot apply DjangoModelPermissionsOrAnonReadOnly on a view that does not set
.queryset
or have a.get_queryset()
methodThis is what I ended up using:
I had the same issue and found that using a predefined Response type instead of the general Response class fixed it.
E.g.
I haven't tested others, but I assume this would work equally well with an HttpResponse or whichever.