<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>
我的urlconf看起来像这样
urlpatterns += patterns("",
("^admin/", include(admin.site.urls)),
("^", include("mezzanine.urls")),
(r'^i18n/', include('django.conf.urls.i18n')),
)
当我切换语言并点击“go”时,我得到一个
Page Not Found (404)
Request Method: POST
Request URL: http://127.0.0.1:8000/i18n/setlang/
No Page matches the given query.
我添加了i18n网址和区域设置中间件。我在一个新项目中尝试了它,但没有运气。 有线索吗?
答案 0 :(得分:6)
Mezzanine的urlpatterns包含一个“全部捕获”页面,因此永远不会找到它下面的任何内容。要使您的模式正常工作,您只需将urls.py中的最后两个模式交换为:
urlpatterns += patterns("",
("^admin/", include(admin.site.urls)),
(r'^i18n/', include('django.conf.urls.i18n')),
("^", include("mezzanine.urls")),
)