aboutsummaryrefslogtreecommitdiffstats
path: root/examples/requestexample
diff options
context:
space:
mode:
Diffstat (limited to 'examples/requestexample')
-rw-r--r--examples/requestexample/__init__.py0
-rw-r--r--examples/requestexample/models.py3
-rw-r--r--examples/requestexample/tests.py0
-rw-r--r--examples/requestexample/urls.py9
-rw-r--r--examples/requestexample/views.py44
5 files changed, 56 insertions, 0 deletions
diff --git a/examples/requestexample/__init__.py b/examples/requestexample/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/examples/requestexample/__init__.py
diff --git a/examples/requestexample/models.py b/examples/requestexample/models.py
new file mode 100644
index 00000000..71a83623
--- /dev/null
+++ b/examples/requestexample/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/examples/requestexample/tests.py b/examples/requestexample/tests.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/examples/requestexample/tests.py
diff --git a/examples/requestexample/urls.py b/examples/requestexample/urls.py
new file mode 100644
index 00000000..d644a599
--- /dev/null
+++ b/examples/requestexample/urls.py
@@ -0,0 +1,9 @@
+from django.conf.urls.defaults import patterns, url
+from requestexample.views import RequestExampleView, EchoRequestContentView
+from examples.views import ProxyView
+
+
+urlpatterns = patterns('',
+ url(r'^$', RequestExampleView.as_view(), name='request-example'),
+ url(r'^content$', ProxyView.as_view(view_class=EchoRequestContentView), name='request-content'),
+)
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)))
+