aboutsummaryrefslogtreecommitdiffstats
path: root/examples/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/views.py')
-rw-r--r--examples/views.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/examples/views.py b/examples/views.py
new file mode 100644
index 00000000..606edc3a
--- /dev/null
+++ b/examples/views.py
@@ -0,0 +1,34 @@
+from djangorestframework.views import View
+from djangorestframework.response import Response
+
+
+class MockView(View):
+ """
+ A view that just acts as a proxy to call non-djangorestframework views, while still
+ displaying the browsable API interface.
+ """
+
+ view_class = None
+
+ def dispatch(self, request, *args, **kwargs):
+ request = self.prepare_request(request)
+ if request.method in ['PUT', 'POST']:
+ self.response = self.view_class.as_view()(request, *args, **kwargs)
+ return super(MockView, self).dispatch(request, *args, **kwargs)
+
+ def get(self, request, *args, **kwargs):
+ return Response()
+
+ def put(self, request, *args, **kwargs):
+ return Response(self.response.content)
+
+ def post(self, request, *args, **kwargs):
+ return Response(self.response.content)
+
+ def __getattribute__(self, name):
+ if name == '__name__':
+ return self.view_class.__name__
+ elif name == '__doc__':
+ return self.view_class.__doc__
+ else:
+ return super(MockView, self).__getattribute__(name)