如何在Django表单中翻译GET键?

时间:2014-06-05 04:59:30

标签: django internationalization django-forms

考虑一个使用i18n Django功能的网站。

我的问题是:如何翻译Django表单创建的GET参数?例如,

www.example.com/persons?search=topic

www.example.com/pessoas?procurar=topic

(pessoas<>人,procurar<>搜索)

我可以使用ugettext_lazy创建的网址,但由于表单始终使用字段名称(例如下面的search),因此我无法使用参数:

class MyForm(forms.Form):

    search = forms.CharField(required=False)

1 个答案:

答案 0 :(得分:0)

如果您需要动态命名URI中的字段,则必须动态命名表单中的字段,如下所示:

from django.utils.translation import ugettext

def MyForm(forms.Form):
  def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields[ugettext("search")] = forms.CharField()
  def search_field():
    return self.fields[ugettext("search")]

我已经包含了一个帮助函数,因此在您的代码中,您可以通过一个不变的名称来引用搜索字段。