From a014ee02888d2fcea6880bef51f143632a60aab3 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Wed, 20 Oct 2010 00:21:47 +0000 Subject: Modified the implementation of get_object() to be consistent with the approach used elsewhere in the API. Also added documentation for get_object() which seems to have been accidentally omitted. This is a BACKWARDS-INCOMPATIBLE CHANGE for anyone depending on the API for get_object() that was introduced (but not documented) in r14254. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14292 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/generic/dates.py | 4 ++-- django/views/generic/detail.py | 6 ++++-- django/views/generic/edit.py | 10 +++++----- 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'django') diff --git a/django/views/generic/dates.py b/django/views/generic/dates.py index fe40b15580..74293f27a7 100644 --- a/django/views/generic/dates.py +++ b/django/views/generic/dates.py @@ -443,7 +443,7 @@ class BaseDateDetailView(YearMixin, MonthMixin, DayMixin, DateMixin, BaseDetailV Detail view of a single object on a single date; this differs from the standard DetailView by accepting a year/month/day in the URL. """ - def get_object(self, queryset=None, **kwargs): + def get_object(self, queryset=None): """ Get the object this request displays. """ @@ -469,7 +469,7 @@ class BaseDateDetailView(YearMixin, MonthMixin, DayMixin, DateMixin, BaseDetailV lookup = _date_lookup_for_field(field, date) qs = qs.filter(**lookup) - return super(BaseDetailView, self).get_object(queryset=qs, **kwargs) + return super(BaseDetailView, self).get_object(queryset=qs) diff --git a/django/views/generic/detail.py b/django/views/generic/detail.py index 55b8e6055e..e75dd77409 100644 --- a/django/views/generic/detail.py +++ b/django/views/generic/detail.py @@ -14,7 +14,7 @@ class SingleObjectMixin(object): slug_field = 'slug' context_object_name = None - def get_object(self, pk=None, slug=None, queryset=None, **kwargs): + def get_object(self, queryset=None): """ Returns the object the view is displaying. @@ -27,6 +27,8 @@ class SingleObjectMixin(object): queryset = self.get_queryset() # Next, try looking up by primary key. + pk = self.kwargs.get('pk', None) + slug = self.kwargs.get('slug', None) if pk is not None: queryset = queryset.filter(pk=pk) @@ -92,7 +94,7 @@ class SingleObjectMixin(object): class BaseDetailView(SingleObjectMixin, View): def get(self, request, **kwargs): - self.object = self.get_object(**kwargs) + self.object = self.get_object() context = self.get_context_data(object=self.object) return self.render_to_response(context) diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py index f45a468ad6..1a361efd43 100644 --- a/django/views/generic/edit.py +++ b/django/views/generic/edit.py @@ -2,8 +2,8 @@ from django.forms import models as model_forms from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponseRedirect from django.views.generic.base import TemplateResponseMixin, View -from django.views.generic.detail import (SingleObjectMixin, - SingleObjectTemplateResponseMixin, BaseDetailView) +from django.views.generic.detail import (SingleObjectMixin, + SingleObjectTemplateResponseMixin, BaseDetailView) class FormMixin(object): @@ -191,11 +191,11 @@ class BaseUpdateView(ModelFormMixin, ProcessFormView): Using this base class requires subclassing to provide a response mixin. """ def get(self, request, *args, **kwargs): - self.object = self.get_object(**kwargs) + self.object = self.get_object() return super(BaseUpdateView, self).get(request, *args, **kwargs) def post(self, request, *args, **kwargs): - self.object = self.get_object(**kwargs) + self.object = self.get_object() return super(BaseUpdateView, self).post(request, *args, **kwargs) # PUT is a valid HTTP verb for creating (with a known URL) or editing an @@ -218,7 +218,7 @@ class DeletionMixin(object): success_url = None def delete(self, request, *args, **kwargs): - self.object = self.get_object(**kwargs) + self.object = self.get_object() self.object.delete() return HttpResponseRedirect(self.get_success_url()) -- cgit v1.3