Реализуйте Django Simple Captcha с существующим django.contrib.auth.forms - PullRequest
9 голосов
/ 31 января 2011

Я хотел бы добавить капчу в мою регистрационную форму Django, используя Django Simple Captcha , найденную здесь: http://code.google.com/p/django-simple-captcha/

Это прекрасно работает, если вы создаете новую форму, но я использую django.contrib.auth.forms ту, которая поставляется с django. Любая идея, как я мог бы реализовать капчу с существующими представлениями аутентификации django? Спасибо!

1 Ответ

6 голосов
/ 02 февраля 2011

Вы можете просто создать подкласс формы django.contrib.auth.forms и добавить CaptchaField, например:

from django.contrib.auth.forms import UserCreationForm
from captcha.fields import CaptchaField

class CaptchaUserCreationForm(UserCreationForm):
    captcha = CaptchaField()

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

if request.POST:
    form = CaptchaUserCreationForm(request.POST)
    if form.is_valid():
        return HttpResponseRedirect('/?ok')
else:
    form = CaptchaUserCreationForm()
...