mirror of https://github.com/django/django.git
Fixed #26812 -- Fixed APPEND_SLASH on a URL including querystring with a trailing slash.
This commit is contained in:
parent
29563cfb80
commit
f46a838efc
|
@ -74,7 +74,7 @@ class CommonMiddleware(MiddlewareMixin):
|
|||
Return True if settings.APPEND_SLASH is True and appending a slash to
|
||||
the request path turns an invalid path into a valid one.
|
||||
"""
|
||||
if settings.APPEND_SLASH and not request.get_full_path().endswith('/'):
|
||||
if settings.APPEND_SLASH and not request.path_info.endswith('/'):
|
||||
urlconf = getattr(request, 'urlconf', None)
|
||||
return (
|
||||
not is_valid_path(request.path_info, urlconf) and
|
||||
|
|
|
@ -83,6 +83,18 @@ class CommonMiddlewareTest(SimpleTestCase):
|
|||
r = CommonMiddleware().process_response(request, response)
|
||||
self.assertEqual(r.url, '/slash/?test=1')
|
||||
|
||||
@override_settings(APPEND_SLASH=True)
|
||||
def test_append_slash_redirect_querystring_have_slash(self):
|
||||
"""
|
||||
APPEND_SLASH should append slash to path when redirecting a request
|
||||
with a querystring ending with slash.
|
||||
"""
|
||||
request = self.rf.get('/slash?test=slash/')
|
||||
response = HttpResponseNotFound()
|
||||
r = CommonMiddleware().process_response(request, response)
|
||||
self.assertIsInstance(r, HttpResponsePermanentRedirect)
|
||||
self.assertEqual(r.url, '/slash/?test=slash/')
|
||||
|
||||
@override_settings(APPEND_SLASH=True, DEBUG=True)
|
||||
def test_append_slash_no_redirect_on_POST_in_DEBUG(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue