david / django-modelviews

Backup of an old repository with useful ideas. Initial goal: integrating REST to django admin (class-based views).

Clone this repository (size: 85.8 KB): HTTPS / SSH
$ hg clone http://code.welldev.org/django-modelviews

Changed (Δ956 bytes):

raw changeset »

generic/compatability.py (0 lines added, 23 lines removed)

generic/rest_views.py (1 lines added, 1 lines removed)

Up to file-list generic/compatability.py:

@@ -30,26 +30,3 @@ class BaseView(object):
30
30
        context = RequestContext(request, context_vars)
31
31
        template = template.render(context)
32
32
        return HttpResponse(template, mimetype=mimetype)
33
34
class BaseDetailView(BaseView):
35
    def __init__(self, queryset, slug_field='slug'):
36
        self.slug_field = slug_field
37
        super(BaseDetailView, self).__init__(queryset)
38
39
    def get_object(self, request, object_pk=None, slug=None):
40
        """
41
        Returns the object to be viewed, changed or deleted, or raises a 404
42
        if it doesn't exist.
43
        """
44
        # Look up the object to be changed or deleted
45
        lookup_kwargs = {}
46
        if object_pk:
47
            lookup_kwargs['pk'] = object_pk
48
        elif slug and self.slug_field:
49
            lookup_kwargs[self.slug_field] = slug
50
        else:
51
            raise AttributeError("Generic view must be called with either an object_pk or a slug/slug_field")
52
        try:
53
            return self.get_query_set(request).get(**lookup_kwargs)
54
        except ObjectDoesNotExist:
55
            raise Http404, "No %s found for %s" % (self.model._meta.verbose_name, lookup_kwargs)

Up to file-list generic/rest_views.py:

@@ -99,7 +99,7 @@ class ModelView(BaseView):
99
99
            self.methods = dict(zip(methods, len(methods)*(False,)))
100
100
        else:
101
101
            self.methods = methods
102
        super(ModelView, self).__init__(queryset, slug_field)
102
        super(ModelView, self).__init__(queryset)
103
103
104
104
105
105
    def __call__(self, request, object_pk=None, slug=None, format='html', **kwargs):