diff options
| author | Tom Christie | 2013-01-15 21:49:24 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-01-15 21:49:24 +0000 |
| commit | 4a7139e41d2500776c30e663c1cebce74b49270d (patch) | |
| tree | c3f60404cbc7fe88e16b305f69129b34a683c30a /rest_framework | |
| parent | 71e55cc4f6300959398f7aef4a8d91b6a6a2af57 (diff) | |
| download | django-rest-framework-4a7139e41d2500776c30e663c1cebce74b49270d.tar.bz2 | |
Tweaks
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/routers.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/rest_framework/routers.py b/rest_framework/routers.py new file mode 100644 index 00000000..a5aef5b7 --- /dev/null +++ b/rest_framework/routers.py @@ -0,0 +1,33 @@ +# Not properly implemented yet, just the basic idea + + +class BaseRouter(object): + def __init__(self): + self.resources = [] + + def register(self, name, resource): + self.resources.append((name, resource)) + + @property + def urlpatterns(self): + ret = [] + + for name, resource in self.resources: + list_actions = { + 'get': getattr(resource, 'list', None), + 'post': getattr(resource, 'create', None) + } + detail_actions = { + 'get': getattr(resource, 'retrieve', None), + 'put': getattr(resource, 'update', None), + 'delete': getattr(resource, 'destroy', None) + } + list_regex = r'^%s/$' % name + detail_regex = r'^%s/(?P<pk>[0-9]+)/$' % name + list_name = '%s-list' + detail_name = '%s-detail' + + ret += url(list_regex, resource.as_view(list_actions), list_name) + ret += url(detail_regex, resource.as_view(detail_actions), detail_name) + + return ret |
