aboutsummaryrefslogtreecommitdiffstats
path: root/examples/views.py
blob: e0e4c3c4069ef31f47d4d0ff16a295268d4dbb1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from djangorestframework.views import View
from djangorestframework.response import Response


class ProxyView(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):
        self.request = request = self.create_request(request)
        if request.method in ['PUT', 'POST']:
            self.response = self.view_class.as_view()(request, *args, **kwargs)
        return super(ProxyView, 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 get_name(self):    
        return self.view_class.__name__

    def get_description(self, html):
        return self.view_class.__doc__