Commit 32ebf96e by Jamie Matthews

Split concrete generic views up into separate bits of functionality

parent 9a741e7d
...@@ -95,27 +95,25 @@ class SingleObjectBaseView(SingleObjectMixin, BaseView): ...@@ -95,27 +95,25 @@ class SingleObjectBaseView(SingleObjectMixin, BaseView):
### Concrete view classes that provide method handlers ### ### Concrete view classes that provide method handlers ###
### by composing the mixin classes with a base view. ### ### by composing the mixin classes with a base view. ###
class ListAPIView(mixins.ListModelMixin,
MultipleObjectBaseView): class CreateAPIView(mixins.CreateModelMixin,
BaseView):
""" """
Concrete view for listing a queryset. Concrete view for creating a model instance.
""" """
def get(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs) return self.create(request, *args, **kwargs)
class ListCreateAPIView(mixins.ListModelMixin, class ListAPIView(mixins.ListModelMixin,
mixins.CreateModelMixin, MultipleObjectBaseView):
MultipleObjectBaseView):
""" """
Concrete view for listing a queryset or creating a model instance. Concrete view for listing a queryset.
""" """
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs) return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
class RetrieveAPIView(mixins.RetrieveModelMixin, class RetrieveAPIView(mixins.RetrieveModelMixin,
SingleObjectBaseView): SingleObjectBaseView):
...@@ -126,31 +124,43 @@ class RetrieveAPIView(mixins.RetrieveModelMixin, ...@@ -126,31 +124,43 @@ class RetrieveAPIView(mixins.RetrieveModelMixin,
return self.retrieve(request, *args, **kwargs) return self.retrieve(request, *args, **kwargs)
class RetrieveDestroyAPIView(mixins.RetrieveModelMixin, class DestroyAPIView(mixins.DestroyModelMixin,
mixins.DestroyModelMixin, SingleObjectBaseView):
SingleObjectBaseView):
""" """
Concrete view for retrieving or deleting a model instance. Concrete view for deleting a model instance.
""" """
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
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 RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin, class UpdateAPIView(mixins.UpdateModelMixin,
mixins.UpdateModelMixin, SingleObjectBaseView):
mixins.DestroyModelMixin,
SingleObjectBaseView):
""" """
Concrete view for retrieving, updating or deleting a model instance. Concrete view for updating a model instance.
""" """
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs): def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs) return self.update(request, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs) class ListCreateAPIView(ListAPIView,
CreateAPIView):
"""
Concrete view for listing a queryset or creating a model instance.
"""
class RetrieveDestroyAPIView(RetrieveAPIView,
DestroyAPIView):
"""
Concrete view for retrieving or deleting a model instance.
"""
class RetrieveUpdateDestroyAPIView(RetrieveAPIView,
UpdateAPIView,
DestroyAPIView):
"""
Concrete view for retrieving, updating or deleting a model instance.
"""
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment