【问题标题】:django - set_language view giving me a "Page not found" errordjango - set_language 视图给我一个“找不到页面”错误
【发布时间】:2011-03-09 20:30:14
【问题描述】:

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

<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')),

)

当我切换语言并点击“开始”时,我得到一个

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

我添加了 i18n url 和 locale 中间件。我也在一个新项目中尝试过,但没有运气。 有什么线索吗?

【问题讨论】:

  • 您能否在urls.py 中向我们展示您正在导入 i18n 集的位置?
  • 我现在编辑了我忘了包含它

标签: django internationalization


【解决方案1】:

Mezzanine 的 urlpatterns 包括一个“catch all”页面,所以它下面的任何东西都不会被发现。要使您的模式正常工作,您只需将 urls.py 中的最后两个模式交换为如下所示:

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

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 2016-04-24
    • 1970-01-01
    • 2021-05-16
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多