使用Django的新i18n_patterns:如何回退到设置模块中指定的默认语言?

Arm*_*ués 10 python django url-routing internationalization urlconf

我正在使用i18n_patternsDjango 1.4 的新功能:

from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns

from django.contrib import admin
admin.autodiscover()

urlpatterns += i18n_patterns('',
    url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

它适用于所有活动语言:

/en/admin/ # Ok
/es/admin/ # Ok
Run Code Online (Sandbox Code Playgroud)

但这失败了:

/admin/ # 404 Not found
Run Code Online (Sandbox Code Playgroud)

如何避免404错误并重定向到所请求URL的语言前缀版本(不仅仅是管理面板)?

是编写自定义中间件的解决方案吗?为什么在Django中默认不会出现这种情况?

jpi*_*pic 14

看起来你没有启用django.middleware.locale.LocaleMiddleware.

  • 糟糕...我的坏!我想文档需要更多地澄清这一点.然而,阅读整个翻译部分后,很明显,翻译中的所有内容都需要"django.middleware.locale.LocaleMiddleware".谢谢! (2认同)