form_invalid_message()
函数是 Django 中 FormMixin
类的一个方法,其作用是在表单提交验证失败(即表单内容不合法)时,指定一个自定义错误消息的显示。
使用方法:
- 重写
form_invalid
方法,调用form_invalid_message()
函数并指定自定义的错误消息。 - 在模板中,使用
{{ form.non_field_errors }}
显示错误消息。
示例一:
from django.views.generic.edit import FormMixin
class MyView(FormMixin, View):
form_class = MyForm
template_name = 'my_template.html'
def get(self, request, *args, **kwargs):
form = self.get_form()
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = self.get_form()
if form.is_valid():
# 表单验证成功,处理提交数据
return self.form_valid(form)
else:
# 表单验证失败,调用form_invalid_message()函数指定错误消息
messages.error(request, self.form_invalid_message(form))
return self.form_invalid(form)
def form_invalid_message(self, form):
return "表单输入不合法,请重新填写。"
在上述代码中,当表单验证失败时,会调用 form_invalid_message()
方法,返回自定义的错误消息。然后,将该错误消息通过 Django 的消息框架 messages
显示在页面上。
示例二:
from django.contrib import messages
from django.views.generic.edit import FormMixin
class ContactView(FormMixin, TemplateView):
template_name = 'contact.html'
form_class = ContactForm
def get(self, request, *args, **kwargs):
form = self.get_form()
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = self.get_form()
if form.is_valid():
# 表单验证成功,处理提交数据
return self.form_valid(form)
else:
# 表单验证失败,调用form_invalid_message()函数指定错误消息
messages.error(request, self.form_invalid_message(form))
return self.form_invalid(form)
def form_valid(self, form):
# 处理提交数据,发送邮件等操作
return super().form_valid(form)
def form_invalid_message(self, form):
return "请检查您输入的联系方式是否正确。"
在上述代码中,当表单验证失败时,会调用 form_invalid_message()
方法,返回自定义的错误消息。然后,将该错误消息通过 Django 的消息框架 messages
显示在页面上。
这两个示例代码展示了如何在 form_invalid_message()
中自定义错误消息,并在页面上显示出来,以便用户能够清晰地了解哪些输入不合法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django的 form_invalid_message() 函数:返回表单验证失败后的消息 - Python技术站