aboutsummaryrefslogtreecommitdiffstats
path: root/src/testapp/views.py
diff options
context:
space:
mode:
authorTom Christie2011-01-04 17:42:23 +0000
committerTom Christie2011-01-04 17:42:23 +0000
commitf144b769fedd421f3ec24dfd3a4f10c681192337 (patch)
treea3ebc0fe0cdd38aad6e3a40f04d62b49fbee51d5 /src/testapp/views.py
parent48c7171aa05cd69ab8d9cd6f3a8eed52f18792a4 (diff)
downloaddjango-rest-framework-f144b769fedd421f3ec24dfd3a4f10c681192337.tar.bz2
Lots of good form validation and default actions
Diffstat (limited to 'src/testapp/views.py')
-rw-r--r--src/testapp/views.py37
1 files changed, 31 insertions, 6 deletions
diff --git a/src/testapp/views.py b/src/testapp/views.py
index d9160af6..f121efa3 100644
--- a/src/testapp/views.py
+++ b/src/testapp/views.py
@@ -1,21 +1,24 @@
-from rest.resource import Resource
+from rest.resource import Resource, ModelResource
from testapp.forms import ExampleForm
+from testapp.models import ExampleModel, ExampleContainer
class RootResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('GET',)
+ allowed_operations = ('read',)
def read(self, headers={}, *args, **kwargs):
return (200, {'read-only-api': self.reverse(ReadOnlyResource),
'write-only-api': self.reverse(WriteOnlyResource),
- 'read-write-api': self.reverse(ReadWriteResource)}, {})
+ 'read-write-api': self.reverse(ReadWriteResource),
+ 'model-api': self.reverse(ModelFormResource),
+ 'create-container': self.reverse(ContainerFactory)}, {})
class ReadOnlyResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('GET',)
+ allowed_operations = ('read',)
def read(self, headers={}, *args, **kwargs):
return (200, {'ExampleString': 'Example',
@@ -26,13 +29,35 @@ class ReadOnlyResource(Resource):
class WriteOnlyResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('PUT',)
+ allowed_operations = ('update',)
def update(self, data, headers={}, *args, **kwargs):
return (200, data, {})
class ReadWriteResource(Resource):
- allowed_methods = ('GET', 'PUT', 'DELETE')
+ allowed_operations = ('read', 'update', 'delete')
create_form = ExampleForm
update_form = ExampleForm
+
+
+class ModelFormResource(ModelResource):
+ allowed_operations = ('read', 'update', 'delete')
+ model = ExampleModel
+
+# Nice things: form validation is applied to any input type
+# html forms for output
+# output always serialized nicely
+class ContainerFactory(ModelResource):
+ allowed_operations = ('create',)
+ model = ExampleContainer
+ fields = ('absolute_uri', 'name', 'key')
+ form_fields = ('name',)
+
+
+class ContainerInstance(ModelResource):
+ allowed_operations = ('read', 'update', 'delete')
+ model = ExampleContainer
+ fields = ('absolute_uri', 'name', 'key')
+ form_fields = ('name',)
+