gpt4 book ai didi

python - 内化设置语言重定向 View 。如何重定向到同一页面?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:34 25 4
gpt4 key购买 nike

我有一个当前重定向到索引页的表单:

    {% for lang in LANGUAGES %}
<form name="setLang{{ lang.1 }}" action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="/"/>
<input type="image" name="language" src="/static/img/{{ lang.0 }}.png" alt="{{ lang.1 }}" value="{{ lang.0 }}"/>
<a href="/" onclick="document.setLang{{ lang.1 }}.submit();return false;"></a>
</form>
{% endfor %}

如何让它重定向到同一页面?

最佳答案

您需要的是一种获取当前路径的方法,但是简单明了 - 没有前导语言代码。假设 Django 会自动将用户重定向到正确的 URL。

我编写了一个简单的函数,可以从给定路径中删除当前语言。它基于 django.core.urlresolvers.resolve 如何处理路径中的语言代码,因此应该非常可靠:

from django.utils.translation import get_language
import re

def strip_lang(path):
pattern = '^(/%s)/' % get_language()
match = re.search(pattern, path)
if match is None:
return path
return path[match.end(1):]

您可以在您的 View 中使用它来将无语言路径传递给您的模板:

def your_view(request):
next = strip_lang(request.path)
return render(request, "form.html", {'next': next})

然后在模板中使用它:

<input name="next" type="hidden" value="{{ next }}"/>

或者你可以很容易地make the function into a template filter并直接在您的模板中使用它:

<input name="next" type="hidden" value="{{ request.path|strip_lang }}"/>

关于python - 内化设置语言重定向 View 。如何重定向到同一页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com