diff options
| author | Jamie Matthews | 2012-10-25 12:26:08 +0100 |
|---|---|---|
| committer | Jamie Matthews | 2012-10-25 12:26:08 +0100 |
| commit | d6e10b50fc6f1735d7dd6ee8bfd9d5d39b635b49 (patch) | |
| tree | 2eba8c77b2b3b0b857c4e008488fee48255601c2 /rest_framework | |
| parent | 16e249d60ded1679bc1c978a72d9aee8c415ae14 (diff) | |
| download | django-rest-framework-d6e10b50fc6f1735d7dd6ee8bfd9d5d39b635b49.tar.bz2 | |
Re-add implementation of multiple-operation generic views to remove diamond inheritance
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/generics.py | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/rest_framework/generics.py b/rest_framework/generics.py index cfb3f29e..7a36f36a 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -144,23 +144,44 @@ class UpdateAPIView(mixins.UpdateModelMixin, return self.update(request, *args, **kwargs) -class ListCreateAPIView(ListAPIView, - CreateAPIView): +class ListCreateAPIView(mixins.ListModelMixin, + mixins.CreateModelMixin, + MultipleObjectBaseView): """ Concrete view for listing a queryset or 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 RetrieveDestroyAPIView(RetrieveAPIView, - DestroyAPIView): +class RetrieveDestroyAPIView(mixins.RetrieveModelMixin, + mixins.DestroyModelMixin, + SingleObjectBaseView): """ Concrete view for retrieving or 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(RetrieveAPIView, - UpdateAPIView, - DestroyAPIView): +class RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin, + mixins.UpdateModelMixin, + mixins.DestroyModelMixin, + SingleObjectBaseView): """ Concrete view for retrieving, updating or deleting 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) |
