diff options
Diffstat (limited to 'djangorestframework/generics.py')
| -rw-r--r-- | djangorestframework/generics.py | 113 | 
1 files changed, 0 insertions, 113 deletions
| diff --git a/djangorestframework/generics.py b/djangorestframework/generics.py deleted file mode 100644 index 5815b73a..00000000 --- a/djangorestframework/generics.py +++ /dev/null @@ -1,113 +0,0 @@ -""" -Generic views that provide commmonly needed behaviour. -""" - -from djangorestframework import views, mixins -from django.views.generic.detail import SingleObjectMixin -from django.views.generic.list import MultipleObjectMixin - - -### Base classes for the generic views ### - -class BaseView(views.APIView): -    """ -    Base class for all other generic views. -    """ -    serializer_class = None - -    def get_serializer(self, data=None, files=None, instance=None): -        # TODO: add support for files -        # TODO: add support for seperate serializer/deserializer -        context = { -            'request': self.request, -            'format': self.kwargs.get('format', None) -        } -        return self.serializer_class(data, instance=instance, context=context) - - -class MultipleObjectBaseView(MultipleObjectMixin, BaseView): -    """ -    Base class for generic views onto a queryset. -    """ -    pass - - -class SingleObjectBaseView(SingleObjectMixin, BaseView): -    """ -    Base class for generic views onto a model instance. -    """ - -    def get_object(self): -        """ -        Override default to add support for object-level permissions. -        """ -        obj = super(SingleObjectBaseView, self).get_object() -        self.check_permissions(self.request, obj) -        return obj - - -### Concrete view classes that provide method handlers ### -### by composing the mixin classes with a base view.   ### - -class ListAPIView(mixins.ListModelMixin, -                  mixins.MetadataMixin, -                  MultipleObjectBaseView): -    """ -    Concrete view for listing a queryset. -    """ -    def get(self, request, *args, **kwargs): -        return self.list(request, *args, **kwargs) - -    def options(self, request, *args, **kwargs): -        return self.metadata(request, *args, **kwargs) - - -class RootAPIView(mixins.ListModelMixin, -                  mixins.CreateModelMixin, -                  mixins.MetadataMixin, -                  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) - -    def options(self, request, *args, **kwargs): -        return self.metadata(request, *args, **kwargs) - - -class DetailAPIView(mixins.RetrieveModelMixin, -                    mixins.MetadataMixin, -                    SingleObjectBaseView): -    """ -    Concrete view for retrieving a model instance. -    """ -    def get(self, request, *args, **kwargs): -        return self.retrieve(request, *args, **kwargs) - -    def options(self, request, *args, **kwargs): -        return self.metadata(request, *args, **kwargs) - - -class InstanceAPIView(mixins.RetrieveModelMixin, -                      mixins.UpdateModelMixin, -                      mixins.DestroyModelMixin, -                      mixins.MetadataMixin, -                      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) - -    def options(self, request, *args, **kwargs): -        return self.metadata(request, *args, **kwargs) | 
