From ece18207cbb64dd89014e279ac636a6c9829828e Mon Sep 17 00:00:00 2001 From: Tim Park Date: Sat, 29 Aug 2020 12:17:58 -0700 Subject: Fixed #31858 -- Reallowed whitespaces in URL paths outside of parameters. Regression in 22394bd3a18a7d9a8957a0b431f8ae4e5ca03a8c. Thanks David Smith for the review. --- django/urls/resolvers.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'django') diff --git a/django/urls/resolvers.py b/django/urls/resolvers.py index 9f4d84d5a2..5e3e6dea16 100644 --- a/django/urls/resolvers.py +++ b/django/urls/resolvers.py @@ -208,8 +208,6 @@ def _route_to_regex(route, is_endpoint=False): For example, 'foo/' returns '^foo\\/(?P[0-9]+)' and {'pk': }. """ - if not set(route).isdisjoint(string.whitespace): - raise ImproperlyConfigured("URL route '%s' cannot contain whitespace." % route) original_route = route parts = ['^'] converters = {} @@ -218,6 +216,11 @@ def _route_to_regex(route, is_endpoint=False): if not match: parts.append(re.escape(route)) break + elif not set(match.group()).isdisjoint(string.whitespace): + raise ImproperlyConfigured( + "URL route '%s' cannot contain whitespace in angle brackets " + "<…>." % original_route + ) parts.append(re.escape(route[:match.start()])) route = route[match.end():] parameter = match['parameter'] -- cgit v1.3