mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-09-22 20:09:07 +03:00
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from django import forms
|
|
from djangorestframework.resource import Resource
|
|
from djangorestframework.response import Response, status
|
|
|
|
|
|
class MyForm(forms.Form):
|
|
foo = forms.BooleanField()
|
|
bar = forms.IntegerField(help_text='Must be an integer.')
|
|
baz = forms.CharField(max_length=32, help_text='Free text. Max length 32 chars.')
|
|
|
|
|
|
class ExampleResource(Resource):
|
|
"""A basic read only resource that points to 3 other resources."""
|
|
allowed_methods = anon_allowed_methods = ('GET',)
|
|
|
|
def get(self, request, auth):
|
|
return {"Some other resources": [self.reverse(AnotherExampleResource, num=num) for num in range(3)]}
|
|
|
|
|
|
class AnotherExampleResource(Resource):
|
|
"""A basic GET-able/POST-able resource."""
|
|
allowed_methods = anon_allowed_methods = ('GET', 'POST')
|
|
form = MyForm # Optional form validation on input
|
|
|
|
def get(self, request, auth, num):
|
|
"""Handle GET requests"""
|
|
if int(num) > 2:
|
|
return Response(status.HTTP_404_NOT_FOUND)
|
|
return "GET request to AnotherExampleResource %s" % num
|
|
|
|
def post(self, request, auth, content, num):
|
|
"""Handle POST requests"""
|
|
if int(num) > 2:
|
|
return Response(status.HTTP_404_NOT_FOUND)
|
|
return "POST request to AnotherExampleResource %s, with content: %s" % (num, repr(content))
|