【问题标题】:django-localeurl and static linksdjango-localeurl 和静态链接
【发布时间】:2011-05-04 17:35:24
【问题描述】:

我有一个网站,我在其中设置了 django-localeurl,每个动态创建的链接都按预期工作,但所有静态链接都没有,例如,如果我有一个 href="{ cat.get_absolute_url }" 并且我访问西班牙语(/es/) 或英语 (/en/) 网站会按预期重定向,但使用 href="/museum/" 会重定向到默认语言代码。

问题是如何根据用户观看的内容将静态链接重定向到英文或西班牙文网站?

【问题讨论】:

    标签: django internationalization translation locale


    【解决方案1】:

    get_absolute_url(以及您有硬编码链接的其他地方)应该使用@permalink 装饰器,或者使用 django 的“反向”实用程序(在 localeurl 中进行猴子修补)

    【讨论】:

    • 所有模型方法 get_absolute_url 都使用 @permalink 装饰器,问题是当我在模板中将链接编码为 /warranty/ 时,当我点击它时,django-localeurl 中间件会将我带到默认语言,而不是我使用的语言。硬编码链接主要用于平面页面,因此我不理解您的解决方案或您不理解我的问题......仍然非常感谢您的回复,如果我不理解您的解决方案,请澄清。
    • 1] 尽你所能从不将 url 硬编码到你的模板中。使用 {% url "warranty_page" %} 或其他。我与 carljm(当前的 localeurl 维护者)就这个问题进行了交谈,基本上他说,根据 localeurl 的原则,他永远不会支持这个用例。对于 localeurl,这意味着 url 固有地是无状态的。对我来说,如果您的网址仅以 /[locale]/path/to/place/ 开头,那么 /path/to/place/ 可以有状态地重定向。如果你想要,我有一个很大的技巧可以解决它,请告诉我。
    • 我现在正在使用 url 标签,并且它与它一起工作得很好......但现在问题出在 multilingual.flatpages 应用程序......我不知道如何获取 multilingual.flatpages 的 url使用 url 标签。这就是我现在缺少的...谢谢
    • packages.python.org/django-localeurl/usage.html#examples 你可以使用它,而不是传递一个字符串,而是传递 request.LANGUAGE_CODE 或类似的
    • 感谢您的提示...我设法让它像这样 href="/{{DEFAULT_LANGUAGE_CODE}}/quality/" 工作,其中质量是一个硬编码的链接,它就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 2019-05-28
    • 2010-12-29
    • 2013-06-04
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多