aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/generics.py
diff options
context:
space:
mode:
authorJamie Matthews2012-10-24 18:22:29 +0100
committerJamie Matthews2012-10-24 18:22:29 +0100
commit32ebf96ef661533a9bb69124ec9cef4af2393014 (patch)
tree458d6e4da9ec02664209202dd64aa5d40fe731dc /rest_framework/generics.py
parent9a741e7ddb756eece1b7b2cca8620db052c57309 (diff)
downloaddjango-rest-framework-32ebf96ef661533a9bb69124ec9cef4af2393014.tar.bz2
Split concrete generic views up into separate bits of functionality
Diffstat (limited to 'rest_framework/generics.py')
-rw-r--r--rest_framework/generics.py68
1 files 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.
+ """