Django - 如何覆盖 html 中的表单模板标签

Django - how to override form template tag in html

我正在从事非英语项目。我在注册的时候遇到了一个小问题

在我的注册中 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 的生成部分并进行翻译,这样是行不通的。

您可以像这样在 model 中使用 verbose_name

field = models.CharField(max_length=200, verbose_name="your_language_here")

更多信息见here

如果您的 form 不是来自“模型, you can use标签”而是像这样:

field = forms.CharField(label="your_language_here")

更多信息here

您可以复制生成的 HTML(CSRFtoken 除外,您必须将其作为 {% csrf_token %})并更改标签内的值。

如果你想让它更易于维护并且更不容易出错,我会更改你的 forms.py.

中的表单标签 https://docs.djangoproject.com/en/1.8/ref/forms/fields/#label

无论如何,表单验证错误都是英文的。所以如果你想做对,你必须阅读 django docs on translation.