如何在Django表单中翻译GET键



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

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

www.example.com/persons?search=topic

www.example.com/pessoas?procurar=topic

(pessoas <> persons, procurar <> search)

url我可以使用ugettext_lazy,但参数我不能够,因为表单总是使用字段名(例如下面的search):

class MyForm(forms.Form):
    search = forms.CharField(required=False)

如果需要动态命名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")]

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

最新更新