Add new generic class for listing a queryset or retrieving, creating, updating or deleting a model instance

This commit is contained in:
AliRn76 2021-07-14 00:22:33 +04:30
parent 98e56e0327
commit 97b001f4f7

View File

@ -289,3 +289,32 @@ class RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin,
def delete(self, request, *args, **kwargs): def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs) return self.destroy(request, *args, **kwargs)
class RetrieveListCreateUpdateDestroyAPIView(mixins.RetrieveModelMixin,
mixins.ListModelMixin,
mixins.CreateModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
GenericAPIView):
"""
Concrete view for listing a queryset or retrieving, creating, updating or deleting a model instance,
"""
def get(self, request, *args, **kwargs):
if kwargs.get(self.lookup_field):
return self.retrieve(request, *args, **kwargs)
else:
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs)
def patch(self, request, *args, **kwargs):
return self.partial_update(request, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
`