From 32ebf96ef661533a9bb69124ec9cef4af2393014 Mon Sep 17 00:00:00 2001 From: Jamie Matthews Date: Wed, 24 Oct 2012 18:22:29 +0100 Subject: Split concrete generic views up into separate bits of functionality --- rest_framework/generics.py | 68 ++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/rest_framework/generics.py b/rest_framework/generics.py index 18c1033d..cfb3f29e 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -95,27 +95,25 @@ class SingleObjectBaseView(SingleObjectMixin, BaseView): ### Concrete view classes that provide method handlers ### ### 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): - return self.list(request, *args, **kwargs) + def post(self, request, *args, **kwargs): + return self.create(request, *args, **kwargs) -class ListCreateAPIView(mixins.ListModelMixin, - mixins.CreateModelMixin, - MultipleObjectBaseView): +class ListAPIView(mixins.ListModelMixin, + MultipleObjectBaseView): """ - Concrete view for listing a queryset or creating a model instance. + Concrete view for listing a queryset. """ def get(self, 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, SingleObjectBaseView): @@ -126,31 +124,43 @@ class RetrieveAPIView(mixins.RetrieveModelMixin, return self.retrieve(request, *args, **kwargs) -class RetrieveDestroyAPIView(mixins.RetrieveModelMixin, - mixins.DestroyModelMixin, - SingleObjectBaseView): +class DestroyAPIView(mixins.DestroyModelMixin, + 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): return self.destroy(request, *args, **kwargs) -class RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin, - mixins.UpdateModelMixin, - mixins.DestroyModelMixin, - SingleObjectBaseView): +class UpdateAPIView(mixins.UpdateModelMixin, + 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): 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. + """ -- cgit v1.2.3