From c7b49792f4de416c903965ff5d029a566b8d7ef8 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 3 Jul 2007 15:11:49 +0000 Subject: [PATCH] Fixed #4685 -- 'View on site' now works for https URLs. Thanks, cbrand@redback.com, treborhudson@gmail.com, Jeff Hilyard git-svn-id: http://code.djangoproject.com/svn/django/trunk@5594 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/defaults.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/django/views/defaults.py b/django/views/defaults.py index 701aebabd6..b4dfc1e1eb 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -21,7 +21,7 @@ def shortcut(request, content_type_id, object_id): # if necessary. # If the object actually defines a domain, we're done. - if absurl.startswith('http://'): + if absurl.startswith('http://') or absurl.startswith('https://'): return http.HttpResponseRedirect(absurl) object_domain = None @@ -61,7 +61,8 @@ def shortcut(request, content_type_id, object_id): # If all that malarkey found an object domain, use it; otherwise fall back # to whatever get_absolute_url() returned. if object_domain is not None: - return http.HttpResponseRedirect('http://%s%s' % (object_domain, absurl)) + protocol = request.is_secure() and 'https' or 'http' + return http.HttpResponseRedirect('%s://%s%s' % (protocol, object_domain, absurl)) else: return http.HttpResponseRedirect(absurl)