django - set_language()trans url

时间:2014-09-09 09:03:52

标签: python django

可能已经在某个地方完成了,但让我再问一次。

我有这个用语言选择的选项来改变页面的语言

<form action="{% url 'set_language' %}" method="post">
   {% csrf_token %}
   <input name="next" type="hidden" value="{% trans request.path %}" />
   <select name="language" class="langoption">
     {% for lang in LANGUAGES %}
        <option value="{{lang.0}}" {% if lang.0 == LANGUAGE_CODE %} selected {% endif %}>
            {{lang.1}}
        </option>
     {% endfor %}
   </select>
</form>

并且假设用户在页面/horoscope/中,而我的urls.py有这样的面孔:

url(_(r'^horoscope/$'), TemplateView.as_view(template_name="horoskope.html"), name="horoscope"),

在.po文件中有"^horoscope/$"的翻译:{{1​​}}(德语翻译)

如何,如果我将语言更改为德语,django会成功更改它,但我得到404页面,因为它正在重定向到"^horoskop/$",这在urls.py中不再存在...更改为{{1 }}。我该如何解决这个问题?

我试着给

/horoscope/

但它仍然是当前的语言。

感谢任何寻求帮助的人

1 个答案:

答案 0 :(得分:0)

您是否可以访问“set_language”视图?在那里你可以控制重定向,你必须将'next'表单字段的给定值从前一种语言翻译成当前语言。