在Django中,error_messages
是表单字段的一个参数,允许你为特定的验证错误自定义错误消息。默认情况下,Django的表单字段会为常见的验证错误提供默认的错误消息。但是,你可能想要为你的应用提供更加用户友好的或者本地化的错误消息。
要自定义错误消息,你可以在定义表单字段时提供一个error_messages
字典,其中包含错误代码到自定义错误消息的映射。错误代码是Django在验证过程中使用的内部代码,用于标识不同类型的错误。
1,创建应用
Test/app15
python manage.py startapp app15
2,注册应用
Test/Test/settings.py
3,添加应用路由地址
Test/Test/urls.py
4,添加表单
Test/app15/forms.py
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(
required=True,
error_messages={
'required': "请输入你的名字",
}
)
age = forms.IntegerField(
error_messages={
'required': "请输入你的年龄",
'invalid': "年龄必须是一个数字",
}
)
email = forms.EmailField(
required=True,
error_messages={
'required': "请输入你的邮箱地址",
'invalid': "这不是一个有效的邮箱地址",
}
)
message = forms.CharField(
widget=forms.Textarea,
required=True,
error_messages={
'required': "请输入你的消息",
}
)
def clean_age(self):
age = self.cleaned_data['age']
if age < 18:
raise forms.ValidationError('年龄小于18!')
return age
5,添加视图函数
Test/app15/views.py
# Create your views here.
from django.shortcuts import render
from .forms import ContactForm
def contact_view(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# 表单数据是有效的,可以在这里发送邮件或进行其他处理
name = form.cleaned_data['name']
email = form.cleaned_data['email']
age = form.cleaned_data['age']
message = form.cleaned_data['message']
# 处理表单数据
# ...
return render(request, '15/success.html')
else:
form = ContactForm()
return render(request, '15/contact.html', {'form': form})
6,添加HTML代码
Test/templates/15/contact.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>联系我们</title>
</head>
<body>
<h1>联系我们</h1>
<form method="post" novalidate>
{% csrf_token %}
{{ form.non_field_errors }}
{{ form.name.errors }}
{{ form.name.label_tag }}<br>
{{ form.name }}<br>
{{ form.age.errors }}
{{ form.age.label_tag }}<br>
{{ form.age }}<br>
{{ form.email.errors }}
{{ form.email.label_tag }}<br>
{{ form.email }}<br>
{{ form.message.errors }}
{{ form.message.label_tag }}<br>
{{ form.message }}<br>
<button type="submit">提交</button>
</form>
</body>
</html>
Test/templates/15/success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>感谢您的联系</title>
</head>
<body>
<h1>感谢您的联系!</h1>
<p>我们将会尽快回复您。</p>
</body>
</html>
7,添加路由地址
Test/app15/urls.py
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('contact_view/', views.contact_view, name='contact_view'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
8,访问页面
http://127.0.0.1:8000/app15/contact_view/