我目前正在研究从1.11到2.2的Django版本。在此过程中,我还必须更改djangorestframework的版本(至3.9.4),该版本将LocaleRegexURLResolver类从其最新版本中完全删除。 有没有可以代替该课程的课程?我找不到该类的替代品,也找不到该问题的解决方案。
class SiteLocaleRegexURLResolver(LocaleRegexURLResolver):
"""
Overrides LocaleRegexURLResolver to use specified default language
by site instead of global default language
"""
def __init__(
self, urlconf_name, site, default_kwargs=None, app_name=None, namespace=None,
prefix_default_language=True
):
super(LocaleRegexURLResolver, self).__init__(
None, urlconf_name, default_kwargs, app_name, namespace,
)
self.prefix_default_language = prefix_default_language
self.default_language = site.language_code
@property
def regex(self):
language_code = get_language() or self.default_language
if language_code not in self._regex_dict:
if language_code == self.default_language and not self.prefix_default_language:
regex_string = ''
else:
regex_string = '^%s/' % language_code
self._regex_dict[language_code] = re.compile(regex_string, re.UNICODE)
return self._regex_dict[language_code]
基本上,它更改默认语言。 在英国,站点/ docs /将使用英语,而/ fr / docs /将使用法语。 另一方面,在FR中,/ docs /用法语表示,/ uk / docs /用英语表示