diff options
| author | tom christie tom@tomchristie.com | 2011-02-01 22:37:51 +0000 |
|---|---|---|
| committer | tom christie tom@tomchristie.com | 2011-02-01 22:37:51 +0000 |
| commit | 6ce5b643fbeab322d85dbaed87d11ffb950c5bed (patch) | |
| tree | e08ad4cc8f465390564a3003daf8cf04b708438b /examples/modelresourceexample | |
| parent | 196c21f37632e213702995651fd739426b6ee13a (diff) | |
| download | django-rest-framework-6ce5b643fbeab322d85dbaed87d11ffb950c5bed.tar.bz2 | |
Added resourceexample, moved simpleexample to modelresourceexample
Diffstat (limited to 'examples/modelresourceexample')
| -rw-r--r-- | examples/modelresourceexample/__init__.py | 0 | ||||
| -rw-r--r-- | examples/modelresourceexample/models.py | 23 | ||||
| -rw-r--r-- | examples/modelresourceexample/urls.py | 6 | ||||
| -rw-r--r-- | examples/modelresourceexample/views.py | 18 |
4 files changed, 47 insertions, 0 deletions
diff --git a/examples/modelresourceexample/__init__.py b/examples/modelresourceexample/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/examples/modelresourceexample/__init__.py diff --git a/examples/modelresourceexample/models.py b/examples/modelresourceexample/models.py new file mode 100644 index 00000000..036501d0 --- /dev/null +++ b/examples/modelresourceexample/models.py @@ -0,0 +1,23 @@ +from django.db import models + +MAX_INSTANCES = 10 + +class MyModel(models.Model): + foo = models.BooleanField() + bar = models.IntegerField(help_text='Must be an integer.') + baz = models.CharField(max_length=32, help_text='Free text. Max length 32 chars.') + created = models.DateTimeField(auto_now_add=True) + + class Meta: + ordering = ('created',) + + def save(self, *args, **kwargs): + """For the purposes of the sandbox, limit the maximum number of stored models.""" + super(MyModel, self).save(*args, **kwargs) + while MyModel.objects.all().count() > MAX_INSTANCES: + MyModel.objects.all()[0].delete() + + @models.permalink + def get_absolute_url(self): + return ('modelresourceexample.views.MyModelResource', (self.pk,)) + diff --git a/examples/modelresourceexample/urls.py b/examples/modelresourceexample/urls.py new file mode 100644 index 00000000..c43cf56a --- /dev/null +++ b/examples/modelresourceexample/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import patterns, url + +urlpatterns = patterns('modelresourceexample.views', + url(r'^$', 'MyModelRootResource'), + url(r'^([0-9]+)/$', 'MyModelResource'), +) diff --git a/examples/modelresourceexample/views.py b/examples/modelresourceexample/views.py new file mode 100644 index 00000000..e912c019 --- /dev/null +++ b/examples/modelresourceexample/views.py @@ -0,0 +1,18 @@ +from djangorestframework.modelresource import ModelResource, RootModelResource +from modelresourceexample.models import MyModel + +FIELDS = ('foo', 'bar', 'baz', 'absolute_url') + +class MyModelRootResource(RootModelResource): + """A create/list resource for MyModel. + Available for both authenticated and anonymous access for the purposes of the sandbox.""" + model = MyModel + allowed_methods = anon_allowed_methods = ('GET', 'POST') + fields = FIELDS + +class MyModelResource(ModelResource): + """A read/update/delete resource for MyModel. + Available for both authenticated and anonymous access for the purposes of the sandbox.""" + model = MyModel + allowed_methods = anon_allowed_methods = ('GET', 'PUT', 'DELETE') + fields = FIELDS |
