form_invalid_message()
函数是Django在FormMixin
中提供的一个方法,其作用是设置表单验证失败时的错误提示信息。以下是该函数的详细说明:
函数说明
def form_invalid_message(self, form, **kwargs):
"""Return the message to use when invalid data is posted."""
return None
参数说明:
form
: 验证失败的表单对象。kwargs
: 其他可选参数。
返回值:
- 如果返回
None
(默认值)或者不定义该函数,则会显示默认的错误提示信息。 - 如果定义了
form_invalid_message()
函数并返回了字符串,则会显示该字符串为错误提示信息。
使用方法
- 定义
form_invalid_message()
函数:
class MyView(FormMixin, View):
# 省略其他代码
def form_invalid_message(self, form, **kwargs):
return '请输入正确的信息'
- 在 HTML 模板中使用错误提示信息:
{% if form.errors %}
{{ form.errors }}
{% elif view.form_invalid_message %}
<div class="alert alert-danger">
{{ view.form_invalid_message }}
</div>
{% endif %}
以上代码会先检查表单是否有错误信息,如果有则直接显示;如果没有则检查 form_invalid_message()
函数是否有返回值,如果有则显示对应提示信息。
实例说明
接下来给出两个示例来说明 form_invalid_message()
的使用方法:
示例一
一个登陆页面,要求用户名和密码均不能为空。如果没有输入,则提示“必须输入用户名和密码”。
from django.views.generic import FormView
from django.contrib.auth.forms import AuthenticationForm
class LoginFormView(FormView):
form_class = AuthenticationForm
template_name = 'registration/login.html'
def form_invalid_message(self, form, **kwargs):
return '必须输入用户名和密码'
在 HTML 模板中使用错误提示信息:
{% if form.errors %}
{{ form.errors }}
{% elif view.form_invalid_message %}
<div class="alert alert-danger">
{{ view.form_invalid_message }}
</div>
{% endif %}
示例二
一个反馈页面,要求留言内容不能为空且不得少于10个字符。如果没有输入或者字符长度不足,则提示“必须输入至少10个字符的留言内容”。
from django.views.generic import FormView
from my_site.forms import FeedbackForm
class FeedbackFormView(FormView):
form_class = FeedbackForm
template_name = 'feedback.html'
def form_invalid_message(self, form, **kwargs):
return '必须输入至少10个字符的留言内容'
在 HTML 模板中使用错误提示信息:
{% if form.errors %}
{{ form.errors }}
{% elif view.form_invalid_message %}
<div class="alert alert-danger">
{{ view.form_invalid_message }}
</div>
{% endif %}
以上就是常见场景下 form_invalid_message()
函数的应用示例和使用方法。