urls.py:
url(r'^password/reset/$', 'django.contrib.auth.views.password_reset', {'html_email_template_name': 'email_password.html'}, 'password_reset'),
我已阅读this并查看了password_reset()的代码。
我需要在用户想要重置密码时使用reCaptcha - 在 password_reset()需要检查request.POST['g-recaptcha-response']
并向Google发出请求(请求有效)。
但我不想在Django源代码中编写代码或使用像django-recaptcha这样的包。
如何重写 password_reset()或执行其他操作来解决此问题?
谢谢!
答案 0 :(得分:1)
执行此操作的一种方法是创建自己的视图,该视图调用密码重置视图:
from django.contrib.auth.views import password_reset
def my_password_reset(request):
# check captcha here
return password_reset()
password_reset方法接收的参数之一是" password_reset_form",您要用于重置密码的表单的类。我建议,不要检查自定义视图上的验证码,而是在从 django.contrib.auth.forms.PasswordResetForm
扩展的新自定义表单中进行检查。