2015-09-16 3 views
3

Я новичок в django (django 1.7 python 2.7).django customize reset password form

Я пытаюсь добавить no captcha recaptcha в мою форму для возврата пароля django.

Я пытаюсь использовать это recaptcha djano plugin.

Я следовал инструкциям и добавил necessay настройки:

Installed django-recaptcha to the Python path.

Added captcha to the INSTALLED_APPS setting.

Добавлено следующее в мой settings.py файл:

RECAPTCHA_PUBLIC_KEY = '76wtgdfsjhsydt7r5FFGFhgsdfytd656sad75fgh' # fake - for the purpose of this post. 
RECAPTCHA_PRIVATE_KEY = '98dfg6df7g56df6gdfgdfg65JHJH656565GFGFGs' # fake - for the purpose of this post. 
NOCAPTCHA = True 

инструкции, то советую чтобы добавить капчу к форме, например:

from django import forms 
from captcha.fields import ReCaptchaField 

class FormWithCaptcha(forms.Form): 
    captcha = ReCaptchaField() 

Как получить доступ к встроенной форме сброса пароля? Как новичок, я подозреваю, что мне нужно настроить встроенную форму пароля сброса, но как мне это сделать? Я даже не уверен, где находится встроенная форма сброса пароля. Пример того, как настроить сборку в форме пароля сброса или нажать на учебник, было бы удобно.

Я искал SO & google, но не смог найти что-либо подходящее.

ответ

2

Вы хотите настроить вид password_reset. По умолчанию используется PasswordResetForm, который вы можете настроить.

# in e.g. myapp/forms.py 
from django.contrib.auth.forms import PasswordResetForm 

class CaptchaPasswordResetForm(PasswordResetForm): 
    captcha = ReCaptchaField() 
    ... 

Затем в urls.py, импортировать форму, и использовать password_reset_form аргумент, чтобы определить форму.

from django.contrib.auth import views as auth_views 
from myapp.forms import CaptchaPasswordResetForm 

urlpatterns = [ 
    ... 
    url(
     '^password_reset/', 
     auth_views.password_reset, 
     {'password_reset_form': CaptchaPasswordResetForm}, 
    ) 
] 

Для получения дополнительной информации о включении сброса пароля мнения в ваших URL-адресов см the docs.

+0

Alasdair, спасибо за код. Я изменил часть кода, но вы определенно толкнули меня на финишную черту. – user3354539

+0

Рад, что у вас это работает! Если в коде есть какие-либо ошибки, вы можете предложить редактировать, чтобы помочь будущим посетителям. – Alasdair

+0

Alasdir, никаких ошибок в коде, просто изменили его для моей формы/URL-адреса и т.д. Еще раз спасибо. – user3354539