【发布时间】:2020-03-09 09:27:52
【问题描述】:
我已经在我的 django 应用程序中创建了一个注册页面,供用户介绍他们的用户名和密码并注册,我想知道我是否可以将 UserCreationForm() 显示的 HTML 文本更改为西班牙语。
这是我目前的代码:
Forms.py
class LoginForm(forms.Form):
Username = forms.CharField(label = 'Username', max_length = 50)
password = forms.CharField(label= 'Password', max_length = 50)
Views.py
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = authenticate(username=username, password=password)
login(request, user)
return redirect('login')
else:
form = UserCreationForm()
context = {
'form' : form
}
return render(request, 'registration/register.html', context)
网址.py
urlpatterns = [
path('registration/', views.register, name='register'),
]
注册.html
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Register</title>
</head>
<body>
<h1>Pagina de Registro</h1>
<form method= "post" action="{% url 'register' %}">
{% csrf_token %}
{% if form.errors %}
<p>Hay errores en el formulario</p>
{% endif %}
{{ form.as_p }}
<input type="submit" value="Register">
</form>
</body>
</html>
HTML 页面在浏览器中显示此内容,我想将 HTML 文本更改为西班牙语,但由于函数自己创建它,我想知道是否可以这样做。
【问题讨论】:
-
请提供您的表单代码。
-
Daniel 说:即使你只使用西班牙语,你也应该将语言设置为“es”,Django 会自动使用西班牙语版本作为默认文本。并使用
{{ form.as_p }}(或 as_table 或 as_u)获得格式更好的表单。 -
我更改了 form.as_p 并且有效,但即使我在 HTML 文件中将语言更改为西班牙语,它仍然以英文显示,我不知道是不是因为它没有为 userCreationForm 翻译。
-
您可以将
{{ form.as_p}}替换为自定义表单并改用西班牙语。
标签: django python-3.x forms