summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlasdair Nicol <alasdair@thenicols.net>2016-09-19 21:18:41 +0100
committerTim Graham <timograham@gmail.com>2016-09-19 21:01:09 -0400
commit190cd0e49f967d2ec0b6c50a63f0d58d13319611 (patch)
treeea42e7a9ab3a431f6ce5d99449e008a4faf7dd5f
parent9c3f8643058958d591a68d33984db6f3e226b11f (diff)
[1.10.x] Fixed #27238 -- Disabled check_pattern_startswith_slash if settings.APPEND_SLASH=False.
Thanks strycore for the report and timgraham for suggesting the solution. Backport of 911d9f4ed1a39f945769b7198a419850378f9824 from master
-rw-r--r--django/core/checks/urls.py4
-rw-r--r--docs/releases/1.10.2.txt3
-rw-r--r--tests/check_framework/test_urls.py10
3 files changed, 17 insertions, 0 deletions
diff --git a/django/core/checks/urls.py b/django/core/checks/urls.py
index 8356fc2f00..c151c491dc 100644
--- a/django/core/checks/urls.py
+++ b/django/core/checks/urls.py
@@ -95,6 +95,10 @@ def check_pattern_startswith_slash(pattern):
Check that the pattern does not begin with a forward slash.
"""
regex_pattern = pattern.regex.pattern
+ if not settings.APPEND_SLASH:
+ # Skip check as it can be useful to start a URL pattern with a slash
+ # when APPEND_SLASH=False.
+ return []
if regex_pattern.startswith('/') or regex_pattern.startswith('^/'):
warning = Warning(
"Your URL pattern {} has a regex beginning with a '/'. Remove this "
diff --git a/docs/releases/1.10.2.txt b/docs/releases/1.10.2.txt
index bc11980053..8c031d37f5 100644
--- a/docs/releases/1.10.2.txt
+++ b/docs/releases/1.10.2.txt
@@ -14,3 +14,6 @@ Bugfixes
* Allowed combining ``contrib.postgres.search.SearchQuery`` with more than one
``&`` or ``|`` operators (:ticket:`27143`).
+
+* Disabled system check for URL patterns beginning with a '/' when
+ ``APPEND_SLASH=False`` (:ticket:`27238`).
diff --git a/tests/check_framework/test_urls.py b/tests/check_framework/test_urls.py
index 926d1947dd..3418af8ac0 100644
--- a/tests/check_framework/test_urls.py
+++ b/tests/check_framework/test_urls.py
@@ -55,6 +55,16 @@ class CheckUrlsTest(SimpleTestCase):
self.assertIn(expected_msg, warning.msg)
+ @override_settings(
+ ROOT_URLCONF='check_framework.urls.beginning_with_slash',
+ APPEND_SLASH=False,
+ )
+ def test_beginning_with_slash_append_slash(self):
+ # It can be useful to start a URL pattern with a slash when
+ # APPEND_SLASH=False (#27238).
+ result = check_url_config(None)
+ self.assertEqual(result, [])
+
@override_settings(ROOT_URLCONF='check_framework.urls.name_with_colon')
def test_name_with_colon(self):
result = check_url_config(None)