如何处理 Django 中的验证码错误提示信息?

在 Django 中使用验证码需要借助第三方库,如 django-simple-captcha。当用户输入的验证码错误时,可以使用 Django 的表单验证方式来处理错误提示信息。

首先,在表单类中引入 CaptchaField,并设置错误提示信息:

from captcha.fields import CaptchaField

class MyForm(forms.Form):
    captcha = CaptchaField(error_messages={'invalid': '验证码错误,请重新输入'})
    # 其他表单字段

接着,在视图函数中处理表单数据,如果验证码验证失败,则将错误信息存储到 context 中,传递给模板:

from django.shortcuts import render

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 表单验证通过,进行后续处理
            # ...
            return render(request, 'success.html')
        else:
            # 表单验证失败,将错误信息存储到 context 中
            context = {'form': form, 'error_msg': '请检查输入信息'}
            return render(request, 'myform.html', context)
    else:
        form = MyForm()
        context = {'form': form}
        return render(request, 'myform.html', context)

最后,在模板中显示错误信息:

{% if error_msg %}
  <p>{{ error_msg }}</p>
{% endif %}

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">提交</button>
</form>

以上代码演示中,当用户输入错误的验证码时,会出现“验证码错误,请重新输入”的提示信息。

相关文章