django-rest-framework/examples/resourceexample/views.py

50 lines
1.6 KiB
Python
Raw Normal View History

2012-02-22 00:57:36 +04:00
from djangorestframework.reverse import reverse
from djangorestframework.views import View
2011-02-19 13:47:26 +03:00
from djangorestframework.response import Response
from djangorestframework import status
from resourceexample.forms import MyForm
class ExampleView(View):
"""
A basic read-only view that points to 3 other views.
"""
def get(self, request):
"""
2012-02-22 00:12:14 +04:00
Handle GET requests, returning a list of URLs pointing to
three other views.
"""
2012-02-25 22:45:17 +04:00
resource_urls = [reverse('another-example',
kwargs={'num': num},
request=request)
for num in range(3)]
return Response({"Some other resources": resource_urls})
class AnotherExampleView(View):
"""
A basic view, that can handle GET and POST requests.
Applies some simple form validation on POST requests.
"""
form = MyForm
def get(self, request, num):
"""
Handle GET requests.
Returns a simple string indicating which view the GET request was for.
"""
if int(num) > 2:
2012-02-22 00:12:14 +04:00
return Response(status=status.HTTP_404_NOT_FOUND)
return Response("GET request to AnotherExampleResource %s" % num)
2011-12-29 17:31:12 +04:00
def post(self, request, num):
"""
Handle POST requests, with form validation.
Returns a simple string indicating what content was supplied.
"""
if int(num) > 2:
2012-02-22 00:12:14 +04:00
return Response(status=status.HTTP_404_NOT_FOUND)
return Response("POST request to AnotherExampleResource %s, with content: %s" % (num, repr(self.CONTENT)))