我需要检查请求路径是否在i18n_pattern之外,即它不应具有'lang'前缀。例如,我有以下urls.py:
urlpatterns = [
path('api/', include('api.urls'), name='api'),
]
urlpatterns += i18n_patterns(
path('', include('core.urls'), name='index'),
prefix_default_language=False
)
[api]的reverse
表明,无论使用哪种语言,它都不会添加前缀。还有其他方法可以确定当前请求的路径未包含在i18n_patterns
中吗?谢谢!
您可以使用django.urls.LocalePrefixPattern
检查url是否不在i18n_pattern中:
from django.urls import LocalePrefixPattern
pattern = LocalePrefixPattern()
if not pattern.match(request.path):
...