diff options
| author | Tom Christie | 2013-03-31 11:36:58 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-03-31 11:36:58 +0100 |
| commit | ec076a00786c6b89a55b6ffe2556bb3b777100f5 (patch) | |
| tree | 83d92cdf9adb70d0b0baf9136f0d3c24a2a778b4 /rest_framework/viewsets.py | |
| parent | 97aa0239163868af40b0a5660c48b54bd7656ad6 (diff) | |
| download | django-rest-framework-ec076a00786c6b89a55b6ffe2556bb3b777100f5.tar.bz2 | |
Add viewsets/routers to indexs etc
Diffstat (limited to 'rest_framework/viewsets.py')
| -rw-r--r-- | rest_framework/viewsets.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/rest_framework/viewsets.py b/rest_framework/viewsets.py new file mode 100644 index 00000000..a5aef5b7 --- /dev/null +++ b/rest_framework/viewsets.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 |
