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  | 
