From 5dff3513cc1bb998abe60f52269790268a74220c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ehrlich?= Date: Mon, 26 Jan 2015 11:09:50 +0100 Subject: [PATCH] [1.8.x] Fixed #24220 - Allowed lazy objects for success_url Backport of 511be35779a98427387d9aa4abacce01dedd7272 from master --- django/views/generic/edit.py | 4 ++++ tests/generic_views/views.py | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py index 6f514c3a70..a4329a25b0 100644 --- a/django/views/generic/edit.py +++ b/django/views/generic/edit.py @@ -165,6 +165,8 @@ class ModelFormMixin(FormMixin, SingleObjectMixin): Returns the supplied URL. """ if self.success_url: + # force_text can be removed with deprecation warning + self.success_url = force_text(self.success_url) if PERCENT_PLACEHOLDER_REGEX.search(self.success_url): warnings.warn( "%()s placeholder style in success_url is deprecated. " @@ -299,6 +301,8 @@ class DeletionMixin(object): def get_success_url(self): if self.success_url: + # force_text can be removed with deprecation warning + self.success_url = force_text(self.success_url) if PERCENT_PLACEHOLDER_REGEX.search(self.success_url): warnings.warn( "%()s placeholder style in success_url is deprecated. " diff --git a/tests/generic_views/views.py b/tests/generic_views/views.py index 27ae5b2ca9..fe7fb88876 100644 --- a/tests/generic_views/views.py +++ b/tests/generic_views/views.py @@ -172,9 +172,7 @@ class SpecializedAuthorDelete(generic.DeleteView): queryset = Author.objects.all() template_name = 'generic_views/confirm_delete.html' context_object_name = 'thingy' - - def get_success_url(self): - return reverse('authors_list') + success_url = reverse_lazy('authors_list') class BookConfig(object):