aboutsummaryrefslogtreecommitdiffstats
path: root/examples/requestexample/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/requestexample/views.py')
-rw-r--r--examples/requestexample/views.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/requestexample/views.py b/examples/requestexample/views.py
new file mode 100644
index 00000000..b5d2c1e7
--- /dev/null
+++ b/examples/requestexample/views.py
@@ -0,0 +1,44 @@
+from djangorestframework.compat import View
+from django.http import HttpResponse
+from django.core.urlresolvers import reverse
+
+from djangorestframework.mixins import RequestMixin
+from djangorestframework.views import View as DRFView
+from djangorestframework import parsers
+from djangorestframework.response import Response
+
+
+class RequestExampleView(DRFView):
+ """
+ A container view for request examples.
+ """
+
+ def get(self, request):
+ return Response([{'name': 'request.DATA Example', 'url': reverse('request-content')},])
+
+
+class MyBaseViewUsingEnhancedRequest(RequestMixin, View):
+ """
+ Base view enabling the usage of enhanced requests with user defined views.
+ """
+
+ parser_classes = parsers.DEFAULT_PARSERS
+
+ def dispatch(self, request, *args, **kwargs):
+ self.request = request = self.create_request(request)
+ return super(MyBaseViewUsingEnhancedRequest, self).dispatch(request, *args, **kwargs)
+
+
+class EchoRequestContentView(MyBaseViewUsingEnhancedRequest):
+ """
+ A view that just reads the items in `request.DATA` and echoes them back.
+ """
+
+ def post(self, request, *args, **kwargs):
+ return HttpResponse(("Found %s in request.DATA, content : %s" %
+ (type(request.DATA), request.DATA)))
+
+ def put(self, request, *args, **kwargs):
+ return HttpResponse(("Found %s in request.DATA, content : %s" %
+ (type(request.DATA), request.DATA)))
+