Skip to content

Commit

Permalink
Fixed #17817 -- Modified LocalMiddleware to use full URLs when redire…
Browse files Browse the repository at this point in the history
…cting to i18n URLs. Thanks to Paul for keeping an eye on the standards.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17633 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jezdez committed Mar 2, 2012
1 parent b9bf7cc commit 126d9e1
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
7 changes: 5 additions & 2 deletions django/middleware/locale.py
Expand Up @@ -33,9 +33,12 @@ def process_response(self, request, response):
language_path = '/%s%s' % (language, request.path_info)
if settings.APPEND_SLASH and not language_path.endswith('/'):
language_path = language_path + '/'

if is_valid_path(language_path, urlconf):
return HttpResponseRedirect(
'/%s%s' % (language, request.get_full_path()))
language_url = "%s://%s/%s%s" % (
request.is_secure() and 'https' or 'http',
request.get_host(), language, request.get_full_path())
return HttpResponseRedirect(language_url)
translation.deactivate()

patch_vary_headers(response, ('Accept-Language',))
Expand Down
8 changes: 3 additions & 5 deletions tests/regressiontests/i18n/patterns/tests.py
Expand Up @@ -182,12 +182,10 @@ def test_not_prefixed_redirect(self):
self.assertRedirects(response, '/not-prefixed/', 301)

def test_en_redirect(self):
response = self.client.get('/account/register', HTTP_ACCEPT_LANGUAGE='en')
response = self.client.get('/account/register', HTTP_ACCEPT_LANGUAGE='en', follow=True)
# target status code of 301 because of CommonMiddleware redirecting
self.assertRedirects(response, '/en/account/register', 302, target_status_code=301)

response = self.client.get(response['location'])
self.assertRedirects(response, '/en/account/register/', 301)
self.assertIn(('http://testserver/en/account/register/', 301), response.redirect_chain)
self.assertRedirects(response, '/en/account/register/', 302)


class URLRedirectWithoutTrailingSlashSettingTests(URLTestCaseBase):
Expand Down

0 comments on commit 126d9e1

Please sign in to comment.