django localeurl和静态链接

django localeurl和静态链接,django,internationalization,translation,locale,Django,Internationalization,Translation,Locale,我有一个网站,我在其中设置了django localeurl,每个动态创建的链接都能按预期工作,但所有静态链接都不能,例如,如果我有href=“{cat.get_absolute_url}”,并且我访问西班牙语(/es/)或英语(/en/)网站,它会按预期重定向,但带有href=“/museum/”它被重定向到默认语言代码 问题是如何根据用户正在观看的内容将静态链接重定向到英语或西班牙语站点?获取绝对url(以及其他硬编码链接的地方)应该使用@permalink decorator,或者使用dj

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


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

获取绝对url(以及其他硬编码链接的地方)应该使用@permalink decorator,或者使用django的“反向”实用程序(在localeurl中使用猴子补丁)

所有模型方法都使用@permalink decorator获取绝对url,问题是当我在模板中有链接harcoded like/warranty/时,当我点击它时,django localeurl中间件将使用默认语言,而不是Im使用的语言。这些硬编码的链接大多是针对平面页面的,所以要么我不理解你的解决方案,要么你不理解我的问题。。。非常感谢您的回复,如果我不理解您的解决方案,请澄清。1]尽可能避免将URL硬编码到模板中。使用{%url“保修页”%}或其他任何内容。我和carljm(当前的localeurl维护人员)就这个问题进行了一次谈话,他基本上说,根据localeurl的原则,他将永远不会支持这个用例。对于localeurl来说,这意味着url本质上是无状态的。对我来说,如果您的URL仅以/[locale]/path/To/place/开头,那么/path/To/place/可以有状态重定向。如果你想要的话,让我知道。我现在正在使用url标签,它的工作非常好。。。但现在的问题是多语言.flatpages应用程序。。。我不知道如何使用url标签获取multilingual.flatpages的url。这就是我现在错过的。。。谢谢你可以使用它,而不是传递一个字符串,传递request.LANGUAGE\u代码或类似的东西谢谢你的提示。。。我设法让它像这样工作href=“/{{DEFAULT\u LANGUAGE\u CODE}}}/quality/”其中quality是一个硬编码链接,它像一个符咒一样工作。