如何处理 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>
以上代码演示中,当用户输入错误的验证码时,会出现“验证码错误,请重新输入”的提示信息。
相关文章