将国际化添加到Django URL,并在添加的前缀之后添加语言前缀
由于这个答案,我知道如何为所有URL添加通用前缀。但我希望URL中添加的前缀总是位于语言前缀之前(由将国际化添加到Django URL,并在添加的前缀之后添加语言前缀,django,url,internationalization,Django,Url,Internationalization,由于这个答案,我知道如何为所有URL添加通用前缀。但我希望URL中添加的前缀总是位于语言前缀之前(由i18n_模式添加) 例如:有了上面的代码,我想要一个urlhttps://example.com/mycuteprefix/en/indicators/而不是通常的https://example.com/en/mycuteprefix/indicators/ 每当我对第一个urlpatterns应用国际化时,我都会得到一个错误。例如,如果我尝试下面的方法: urlpatterns = [
i18n_模式添加)
例如:有了上面的代码,我想要一个urlhttps://example.com/mycuteprefix/en/indicators/
而不是通常的https://example.com/en/mycuteprefix/indicators/
每当我对第一个urlpatterns
应用国际化时,我都会得到一个错误。例如,如果我尝试下面的方法:
urlpatterns = [
path("grappelli/", include("grappelli.urls")), # grappelli URLS
path("admin/doc/", include("django.contrib.admindocs.urls")),
path("admin/", admin.site.urls),
path("pages/", include("django.contrib.flatpages.urls")),
re_path(r"^api-auth/", include("rest_framework.urls")),
re_path(r"^accounts/", include("allauth.urls")),
re_path(r"^indicators/", include("indicators.urls", namespace="indicators")),
]
urlpatterns += i18n_patterns(
path("", TemplateView.as_view(template_name="landing.html"), name="landing"),
)
if settings.URL_PREFIX:
urlpatterns = [path(r"{}".format(settings.URL_PREFIX), include(urlpatterns))]
我有一个错误:
urlpatterns=[path(r“{}”.format(settings.URL_前缀),include(urlpatterns))]
文件“/home/username/.virtualenvs/roject/lib/python3.5/site packages/django/url/conf.py”,第52行,包含在include中
'不允许在包含的URLconf中使用i18n_模式。'
django.core.exceptions.ImpropertlyConfigured:不允许在包含的URLconf中使用i18n_模式
如何做到这一点
urlpatterns = [
path("grappelli/", include("grappelli.urls")), # grappelli URLS
path("admin/doc/", include("django.contrib.admindocs.urls")),
path("admin/", admin.site.urls),
path("pages/", include("django.contrib.flatpages.urls")),
re_path(r"^api-auth/", include("rest_framework.urls")),
re_path(r"^accounts/", include("allauth.urls")),
re_path(r"^indicators/", include("indicators.urls", namespace="indicators")),
]
urlpatterns += i18n_patterns(
path("", TemplateView.as_view(template_name="landing.html"), name="landing"),
)
if settings.URL_PREFIX:
urlpatterns = [path(r"{}".format(settings.URL_PREFIX), include(urlpatterns))]