考虑一个使用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)
答案 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")]
我已经包含了一个帮助函数,因此在您的代码中,您可以通过一个不变的名称来引用搜索字段。