您要自定义PasswordReset
视图。默认情况下,它使用PasswordResetForm
您可以自定义的。
# in e.g. myapp/forms.py
from django.contrib.auth.forms import PasswordResetForm
class CaptchaPasswordResetForm(PasswordResetForm):
captcha = ReCaptchaField()
...
然后在中urls.py
,导入您的表单,并使用form_class
指定表单。
from django.contrib.auth import views as auth_views
from django.urls import path
from web.forms import CaptchaPasswordResetForm
urlpatterns = [
path("accounts/password_reset/", auth_views.PasswordResetView.as_view(form_class=CaptchaPasswordResetForm)),
]
对于Django <1.11,您需要自定义password_reset
视图的URL模式,并将其设置password_reset_form
为
from django.contrib.auth import views as auth_views
from myapp.forms import CaptchaPasswordResetForm
urlpatterns = [
...
url(
r'^password_reset/',
auth_views.password_reset,
{'password_reset_form': CaptchaPasswordResetForm},
)
]
有关在您的网址中包含密码重置视图的更多信息,请参阅docs。