From 42f2f9b40d1295e18a5b720b0d1f6ad85e928d8a Mon Sep 17 00:00:00 2001 From: tom christie tom@tomchristie.com Date: Sun, 30 Jan 2011 18:30:39 +0000 Subject: Rename to django-rest-framework, get simpleexample working --- examples/blogpost/views.py | 6 +++--- examples/objectstore/views.py | 4 ++-- examples/pygments_api/views.py | 6 +++--- examples/requirements.txt | 6 ++++++ examples/settings.py | 9 +++++---- examples/simpleexample/__init__.py | 0 examples/simpleexample/models.py | 23 +++++++++++++++++++++++ examples/simpleexample/urls.py | 6 ++++++ examples/simpleexample/views.py | 18 ++++++++++++++++++ examples/urls.py | 27 ++++++++++++++++++++------- 10 files changed, 86 insertions(+), 19 deletions(-) create mode 100644 examples/requirements.txt create mode 100644 examples/simpleexample/__init__.py create mode 100644 examples/simpleexample/models.py create mode 100644 examples/simpleexample/urls.py create mode 100644 examples/simpleexample/views.py (limited to 'examples') diff --git a/examples/blogpost/views.py b/examples/blogpost/views.py index c5be2544..bfb53b5d 100644 --- a/examples/blogpost/views.py +++ b/examples/blogpost/views.py @@ -1,6 +1,6 @@ -from flywheel.response import Response, status -from flywheel.resource import Resource -from flywheel.modelresource import ModelResource, RootModelResource +from djangorestframework.response import Response, status +from djangorestframework.resource import Resource +from djangorestframework.modelresource import ModelResource, RootModelResource from blogpost.models import BlogPost, Comment BLOG_POST_FIELDS = ('created', 'title', 'slug', 'content', 'absolute_url', 'comment_url', 'comments_url') diff --git a/examples/objectstore/views.py b/examples/objectstore/views.py index 4681fe70..90bdb9e3 100644 --- a/examples/objectstore/views.py +++ b/examples/objectstore/views.py @@ -1,7 +1,7 @@ from django.conf import settings -from flywheel.resource import Resource -from flywheel.response import Response, status +from djangorestframework.resource import Resource +from djangorestframework.response import Response, status import pickle import os diff --git a/examples/pygments_api/views.py b/examples/pygments_api/views.py index d9082ada..e22705d9 100644 --- a/examples/pygments_api/views.py +++ b/examples/pygments_api/views.py @@ -1,8 +1,8 @@ from django.conf import settings -from flywheel.resource import Resource -from flywheel.response import Response, status -from flywheel.emitters import BaseEmitter +from djangorestframework.resource import Resource +from djangorestframework.response import Response, status +from djangorestframework.emitters import BaseEmitter from pygments.formatters import HtmlFormatter from pygments.lexers import get_lexer_by_name diff --git a/examples/requirements.txt b/examples/requirements.txt new file mode 100644 index 00000000..4ae9e3c7 --- /dev/null +++ b/examples/requirements.txt @@ -0,0 +1,6 @@ +# For the examples we need Django, pygments and httplib2... + +Django==1.2.4 +wsgiref==0.1.2 +Pygments==1.4 +httplib2==0.6.0 diff --git a/examples/settings.py b/examples/settings.py index 0ae3bf56..4aa5dd00 100644 --- a/examples/settings.py +++ b/examples/settings.py @@ -93,9 +93,10 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', - 'django.contrib.admin', - 'flywheel', - 'blogpost', + #'django.contrib.admin', + 'djangorestframework', + 'simpleexample', 'objectstore', - 'pygments_api' + 'pygments_api', + 'blogpost', ) diff --git a/examples/simpleexample/__init__.py b/examples/simpleexample/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/examples/simpleexample/models.py b/examples/simpleexample/models.py new file mode 100644 index 00000000..13867f61 --- /dev/null +++ b/examples/simpleexample/models.py @@ -0,0 +1,23 @@ +from django.db import models + +MAX_INSTANCES = 20 + +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.""" + while MyModel.objects.all().count() > MAX_INSTANCES: + MyModel.objects.all()[0].delete() + super(MyModel, self).save(*args, **kwargs) + + @models.permalink + def get_absolute_url(self): + return ('simpleexample.views.MyModelResource', (self.pk,)) + diff --git a/examples/simpleexample/urls.py b/examples/simpleexample/urls.py new file mode 100644 index 00000000..d853ba5a --- /dev/null +++ b/examples/simpleexample/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import patterns, url + +urlpatterns = patterns('simpleexample.views', + url(r'^$', 'MyModelRootResource'), + url(r'^([0-9]+)/$', 'MyModelResource'), +) diff --git a/examples/simpleexample/views.py b/examples/simpleexample/views.py new file mode 100644 index 00000000..1f113ac2 --- /dev/null +++ b/examples/simpleexample/views.py @@ -0,0 +1,18 @@ +from djangorestframework.modelresource import ModelResource, RootModelResource +from simpleexample.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 diff --git a/examples/urls.py b/examples/urls.py index b1dec13d..2b8e6fcd 100644 --- a/examples/urls.py +++ b/examples/urls.py @@ -1,14 +1,27 @@ from django.conf.urls.defaults import patterns, include -from django.contrib import admin +#from django.contrib import admin +from djangorestframework.resource import Resource + +#admin.autodiscover() + +class RootResource(Resource): + 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'),} -admin.autodiscover() urlpatterns = patterns('', - (r'^pygments-example/', include('pygments_api.urls')), - (r'^blog-post-example/', include('blogpost.urls')), - (r'^object-store-example/', include('objectstore.urls')), + (r'^$', RootResource), + (r'^simple-example/', include('simpleexample.urls')), + (r'^object-store/', include('objectstore.urls')), + (r'^pygments/', include('pygments_api.urls')), + (r'^blog-post/', include('blogpost.urls')), (r'^accounts/login/$', 'django.contrib.auth.views.login'), (r'^accounts/logout/$', 'django.contrib.auth.views.logout'), - (r'^admin/doc/', include('django.contrib.admindocs.urls')), - (r'^admin/', include(admin.site.urls)), + #(r'^admin/doc/', include('django.contrib.admindocs.urls')), + #(r'^admin/', include(admin.site.urls)), ) -- cgit v1.2.3