diff options
| author | Tom Christie | 2011-01-04 17:42:23 +0000 |
|---|---|---|
| committer | Tom Christie | 2011-01-04 17:42:23 +0000 |
| commit | f144b769fedd421f3ec24dfd3a4f10c681192337 (patch) | |
| tree | a3ebc0fe0cdd38aad6e3a40f04d62b49fbee51d5 /src/testapp/views.py | |
| parent | 48c7171aa05cd69ab8d9cd6f3a8eed52f18792a4 (diff) | |
| download | django-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.py | 37 |
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',) + |
