【发布时间】:2015-04-23 07:27:18
【问题描述】:
我正在从事非英语的项目。我在注册的时候遇到了一个小问题。
在我的注册 html 中我有:
...
<form action="" style="text-align: center" method="POST">{% csrf_token %}
<ul style = "text-align: left">
{{user_form.as_p}}
</ul>
<input type="submit" value="Užsiregistruoti" onclick="validateForm()"/>
</form>
...
现在文本默认为英文。 {{user_form.as_p}} 从我的 forms.py 中获取值:
...
fields = ('username', 'password1', 'password2')
...
有没有办法保持表单值不变,并用我自己的语言重写 html 部分?我怎么做?我不能只获取生成的 html 部分并翻译它,它不会那样工作。
【问题讨论】:
-
你的意思是“{{user_form.as_p}}”,你想用你自己的语言写。
-
您需要为此启用 Django 的
I18N功能。这是一个有点广泛的话题,但很好documented here。基本设置完成后,您可以将表单上的标签翻译成设置中设置的任何语言。以一种形式,例如比如your_name = forms.CharField(label=_('Your name'), max_length=100),或者如果你的表单来源于模型,那么通过模型中的verbose_name属性。 -
:) 我不知何故认为您正在从事一个需要支持多种语言的项目(这根本不是您所写的)。如果您的项目需要使用单一语言,那么@shellbye 的答案当然会更简单和正确。
标签: python html django forms overriding