| | 107 | |
|---|
| | 108 | def model_admin_view(request, app_label, model_name, rest_of_url): |
|---|
| | 109 | model = models.get_model(app_label, model_name) |
|---|
| | 110 | if model is None: |
|---|
| | 111 | raise Http404("App %r, model %r, not found" % (app_label, model_name)) |
|---|
| | 112 | mav = ModelAdminView(model._meta) |
|---|
| | 113 | return mav(request, rest_of_url) |
|---|
| | 114 | |
|---|
| | 115 | class ModelAdminView(object): |
|---|
| | 116 | def __init__(self, opts): |
|---|
| | 117 | self.opts = opts |
|---|
| | 118 | |
|---|
| | 119 | def __call__(self, request, url): |
|---|
| | 120 | if url is None: |
|---|
| | 121 | return self.change_list_view(request) |
|---|
| | 122 | elif url.endswith('add'): |
|---|
| | 123 | return self.add_view(request) |
|---|
| | 124 | elif url.endswith('history'): |
|---|
| | 125 | return self.history_view(request, url[:-8]) |
|---|
| | 126 | elif url.endswith('delete'): |
|---|
| | 127 | return self.delete_view(request, url[:-7]) |
|---|
| | 128 | else: |
|---|
| | 129 | return self.change_view(request, url) |
|---|
| | 130 | |
|---|
| | 131 | def add_view(self, request): |
|---|
| | 132 | raise NotImplementedError('Add view') |
|---|
| | 133 | |
|---|
| | 134 | def change_view(self, request, object_id): |
|---|
| | 135 | raise NotImplementedError('Change view with object %r' % object_id) |
|---|
| | 136 | |
|---|
| | 137 | def change_list_view(self, request): |
|---|
| | 138 | raise NotImplementedError('Change list view') |
|---|
| | 139 | |
|---|
| | 140 | def delete_view(self, request, object_id): |
|---|
| | 141 | raise NotImplementedError('Delete view with object %r' % object_id) |
|---|
| | 142 | |
|---|
| | 143 | def history_view(self, request, object_id): |
|---|
| | 144 | raise NotImplementedError('History view with object %r' % object_id) |
|---|