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 | |
| parent | 196c21f37632e213702995651fd739426b6ee13a (diff) | |
| download | django-rest-framework-6ce5b643fbeab322d85dbaed87d11ffb950c5bed.tar.bz2 | |
Added resourceexample, moved simpleexample to modelresourceexample
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/modelresourceexample/__init__.py (renamed from examples/simpleexample/__init__.py) | 0 | ||||
| -rw-r--r-- | examples/modelresourceexample/models.py (renamed from examples/simpleexample/models.py) | 2 | ||||
| -rw-r--r-- | examples/modelresourceexample/urls.py (renamed from examples/simpleexample/urls.py) | 2 | ||||
| -rw-r--r-- | examples/modelresourceexample/views.py (renamed from examples/simpleexample/views.py) | 2 | ||||
| -rw-r--r-- | examples/resourceexample/__init__.py | 0 | ||||
| -rw-r--r-- | examples/resourceexample/urls.py | 6 | ||||
| -rw-r--r-- | examples/resourceexample/views.py | 35 | ||||
| -rw-r--r-- | examples/settings.py | 4 | ||||
| -rw-r--r-- | examples/urls.py | 20 | 
9 files changed, 62 insertions, 9 deletions
| diff --git a/examples/simpleexample/__init__.py b/examples/modelresourceexample/__init__.py index e69de29b..e69de29b 100644 --- a/examples/simpleexample/__init__.py +++ b/examples/modelresourceexample/__init__.py diff --git a/examples/simpleexample/models.py b/examples/modelresourceexample/models.py index b628f895..036501d0 100644 --- a/examples/simpleexample/models.py +++ b/examples/modelresourceexample/models.py @@ -19,5 +19,5 @@ class MyModel(models.Model):      @models.permalink      def get_absolute_url(self): -        return ('simpleexample.views.MyModelResource', (self.pk,)) +        return ('modelresourceexample.views.MyModelResource', (self.pk,)) diff --git a/examples/simpleexample/urls.py b/examples/modelresourceexample/urls.py index 92e782dc..c43cf56a 100644 --- a/examples/simpleexample/urls.py +++ b/examples/modelresourceexample/urls.py @@ -1,6 +1,6 @@  from django.conf.urls.defaults import patterns, url -urlpatterns = patterns('simpleexample.views', +urlpatterns = patterns('modelresourceexample.views',      url(r'^$',          'MyModelRootResource'),      url(r'^([0-9]+)/$', 'MyModelResource'),  ) diff --git a/examples/simpleexample/views.py b/examples/modelresourceexample/views.py index 1f113ac2..e912c019 100644 --- a/examples/simpleexample/views.py +++ b/examples/modelresourceexample/views.py @@ -1,5 +1,5 @@  from djangorestframework.modelresource import ModelResource, RootModelResource -from simpleexample.models import MyModel +from modelresourceexample.models import MyModel  FIELDS = ('foo', 'bar', 'baz', 'absolute_url') diff --git a/examples/resourceexample/__init__.py b/examples/resourceexample/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/examples/resourceexample/__init__.py diff --git a/examples/resourceexample/urls.py b/examples/resourceexample/urls.py new file mode 100644 index 00000000..01cc7c62 --- /dev/null +++ b/examples/resourceexample/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import patterns, url + +urlpatterns = patterns('resourceexample.views', +    url(r'^$',          'ExampleResource'), +    url(r'^(?P<num>[0-9]+)/$', 'AnotherExampleResource'), +) diff --git a/examples/resourceexample/views.py b/examples/resourceexample/views.py new file mode 100644 index 00000000..650a8e39 --- /dev/null +++ b/examples/resourceexample/views.py @@ -0,0 +1,35 @@ +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)) diff --git a/examples/settings.py b/examples/settings.py index 4aa5dd00..865dc394 100644 --- a/examples/settings.py +++ b/examples/settings.py @@ -95,7 +95,9 @@ INSTALLED_APPS = (      'django.contrib.messages',      #'django.contrib.admin',      'djangorestframework', -    'simpleexample', + +    'resourceexample', +    'modelresourceexample',      'objectstore',      'pygments_api',      'blogpost', diff --git a/examples/urls.py b/examples/urls.py index 2b8e6fcd..41b80d58 100644 --- a/examples/urls.py +++ b/examples/urls.py @@ -5,18 +5,28 @@ from djangorestframework.resource import Resource  #admin.autodiscover()  class RootResource(Resource): +    """This is the sandbox for the examples provided with django-rest-framework. + +    These examples are here to help you get a better idea of the some of the +    features of django-rest-framework API, such as automatic form and model validation, +    support for multiple input and output media types, etc... + +    Please feel free to browse, create, edit and delete the resources here, either +    in the browser, from the command line, or programmatically."""      allowed_methods = anon_allowed_methods = ('GET',)      def get(self, request, auth): -        return {'simple example': self.reverse('simpleexample.views.MyModelRootResource'), -                'pygments example': self.reverse('pygments_api.views.PygmentsRoot'), -                'object store example': self.reverse('objectstore.views.ObjectStoreRoot'), -                'blog post example': self.reverse('blogpost.views.BlogPostRoot'),} +        return {'Simple Resource example': self.reverse('resourceexample.views.ExampleResource'), +                'Simple ModelResource example': self.reverse('modelresourceexample.views.MyModelRootResource'), +                'Object store API (Resource)': self.reverse('objectstore.views.ObjectStoreRoot'), +                'A pygments pastebin API (Resource + forms)': self.reverse('pygments_api.views.PygmentsRoot'), +                'Blog posts API (ModelResource)': self.reverse('blogpost.views.BlogPostRoot'),}  urlpatterns = patterns('',      (r'^$', RootResource), -    (r'^simple-example/', include('simpleexample.urls')), +    (r'^model-resource-example/', include('modelresourceexample.urls')), +    (r'^resource-example/', include('resourceexample.urls')),      (r'^object-store/', include('objectstore.urls')),      (r'^pygments/', include('pygments_api.urls')),      (r'^blog-post/', include('blogpost.urls')), | 
