8000 Override urlconf_module so that Django system checks don't crash. · django-cms/django-cms@b1a17b1 · GitHub
[go: up one dir, main page]

Skip to content
10000

Commit b1a17b1

Browse files
committed
Override urlconf_module so that Django system checks don't crash.
Without this fix, Django system checks in Django 2.2 will try to resolve the "app_resolver" module, which does not exist. Overriding ``urlconf_module`` prevents the issue. Fixes #6717
1 parent 0143b44 commit b1a17b1

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

cms/appresolver.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,28 @@ def applications_page_check(request, current_page=None, path=None):
5959
pass
6060
return None
6161

62-
6362
class AppRegexURLResolver(URLResolver):
63+
6464
def __init__(self, *args, **kwargs):
6565
self.page_id = None
6666
self.url_patterns_dict = {}
6767
super(AppRegexURLResolver, self).__init__(*args, **kwargs)
6868

69+
@property
70+
def urlconf_module(self):
71+
# It is valid for urlconf_module to be a list of patterns. So we just
72+
# return the list here.
73+
#
74+
# See https://github.com/django/django/blob/2.2.4/django/urls/resolvers.py#L578
75+
#
76+
return self.url_patterns_dict.get(get_language(), [])
77+
78+
# On URLResolver the url_patterns property is cached and thus calls made after
79+
# language changes (different return values for get_language()) would not return the
80+
# right value. Overriding here prevents caching.
6981
@property
7082
def url_patterns(self):
71-
language = get_language()
72-
if language in self.url_patterns_dict:
73-
return self.url_patterns_dict[language]
74-
else:
75-
return []
83+
return self.urlconf_module
7684

7785
def resolve_page_id(self, path):
7886
"""Resolves requested path similar way how resolve does, but instead

0 commit comments

Comments
 (0)
0