diff options
Diffstat (limited to 'examples/blogpost/urls.py')
| -rw-r--r-- | examples/blogpost/urls.py | 37 | 
1 files changed, 32 insertions, 5 deletions
diff --git a/examples/blogpost/urls.py b/examples/blogpost/urls.py index 1306b0d7..c677b8fa 100644 --- a/examples/blogpost/urls.py +++ b/examples/blogpost/urls.py @@ -1,9 +1,36 @@  from django.conf.urls.defaults import patterns, url -from blogpost.views import BlogPosts, BlogPostInstance, Comments, CommentInstance +from django.core.urlresolvers import reverse + +from djangorestframework.views import ListOrCreateModelView, InstanceModelView +from djangorestframework.resources import ModelResource + +from blogpost.models import BlogPost, Comment + + +class BlogPostResource(ModelResource): +    """ +    A Blog Post has a *title* and *content*, and can be associated with zero or more comments. +    """ +    model = BlogPost +    fields = ('created', 'title', 'slug', 'content', 'url', 'comments') +    ordering = ('-created',) + +    def comments(self, instance): +        return reverse('comments', kwargs={'blogpost': instance.key})  + + +class CommentResource(ModelResource): +    """ +    A Comment is associated with a given Blog Post and has a *username* and *comment*, and optionally a *rating*.  +    """ +    model = Comment +    fields = ('username', 'comment', 'created', 'rating', 'url', 'blogpost') +    ordering = ('-created',) +  urlpatterns = patterns('', -    url(r'^$', BlogPosts.as_view(), name='blog-posts'), -    url(r'^(?P<key>[^/]+)/$', BlogPostInstance.as_view(), name='blog-post'), -    url(r'^(?P<blogpost>[^/]+)/comments/$', Comments.as_view(), name='comments'), -    url(r'^(?P<blogpost>[^/]+)/comments/(?P<id>[^/]+)/$', CommentInstance.as_view(), name='comment'), +    url(r'^$', ListOrCreateModelView.as_view(resource=BlogPostResource), name='blog-posts-root'), +    url(r'^(?P<key>[^/]+)/$', InstanceModelView.as_view(resource=BlogPostResource)), +    url(r'^(?P<blogpost>[^/]+)/comments/$', ListOrCreateModelView.as_view(resource=CommentResource), name='comments'), +    url(r'^(?P<blogpost>[^/]+)/comments/(?P<id>[^/]+)/$', InstanceModelView.as_view(resource=CommentResource)),  )  | 
