django - set_language视图给我一个"找不到页面"的错误

tak*_*uke 3 django internationalization

嗨,我一直在关注django的国际化文档(在django 1.2.5上使用mezzanine),一切都很好,除非我使用像文档中的那样的表单来切换这样的语言代码

<form action="/i18n/setlang/" method="post">
<input name="next" type="hidden" value="/whatever/" />
<select name="language">
    {% for lang in LANGUAGES %}
    <option value="{{ lang.0 }}">{{ lang.1 }}</option>
    {% endfor %}
</select>
<input type="submit" value="Go" />
</form>
Run Code Online (Sandbox Code Playgroud)

我的urlconf看起来像这样

urlpatterns += patterns("",
    ("^admin/", include(admin.site.urls)),
    ("^", include("mezzanine.urls")),
    (r'^i18n/', include('django.conf.urls.i18n')),

)
Run Code Online (Sandbox Code Playgroud)

当我切换语言并点击"go"时,我得到一个

        Page Not Found (404)
        Request Method: POST
        Request URL:    http://127.0.0.1:8000/i18n/setlang/
        No Page matches the given query.
Run Code Online (Sandbox Code Playgroud)

我添加了i18n网址和区域设置中间件.我在一个新项目中尝试了它也没有运气.有线索吗?

Ste*_*ald 6

夹层的urlpatterns包含页面的"全部捕获",因此永远不会找到它下面的任何内容.要使您的模式正常工作,您只需将urls.py中的最后两个模式交换为:

urlpatterns += patterns("",
    ("^admin/", include(admin.site.urls)),
    (r'^i18n/', include('django.conf.urls.i18n')),
    ("^", include("mezzanine.urls")),
)
Run Code Online (Sandbox Code Playgroud)