Django - 如何在html中覆盖表单模板标记

时间:2015-04-23 07:27:19

标签: python html django forms override

我正在研究非英语语言的项目。我在注册时遇到了一些问题。

在我的注册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的生成部分并进行翻译,它不会那样工作。

2 个答案:

答案 0 :(得分:1)

您可以在verbose_name中使用model,如下所示:

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

更多信息,请参阅here

如果您的form没有来自&#39;型号, you can use标签,而是这样:

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

更多信息here

答案 1 :(得分:1)

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

如果您希望更易于维护且不易出错,我会更改您的forms.py中的表单标签https://docs.djangoproject.com/en/1.8/ref/forms/fields/#label

无论如何,表单验证错误将使用英语。所以如果你想做得对,你必须阅读django docs on translation