Подтвердить что ты не робот

Простой в использовании django captcha или приложение для регистрации с captcha?

Я хочу реализовать регистрацию пользователя, используя captcha в Django. Рабочий процесс django-registration - отличное приложение, но у него нет captcha.

Какой captcha вы бы рекомендовали использовать с ним? Существуют ли другие варианты регистрации + captcha или полезные ссылки на эту тему?

Это должно работать с Django-1.1 и не слишком сложно установить.

4b9b3361

Ответ 1

django-registration довольно расширяема. Один из способов его продления - предоставить пользовательскую регистрационную форму. Я бы рекомендовал использовать reCaptcha, например. с полем виджетов и форм из здесь (заархивировано). Тогда это так же просто, как написать собственный класс формы и регистрационный бэкэнд (что проще, чем кажется):

from registration.backends.default import DefaultBackend
from registration.forms import RegistrationForm

class RecaptchaRegistrationForm(RegistrationForm)
    recaptcha = ReCaptchaField(label="I'm a human")

class RecaptchaRegistrationBackend(DefaultBackend):
    def get_form_class(self, request):
        return RecaptchaRegistrationForm

Последний шаг - сообщить django-регистрации, чтобы использовать ваш сервер. Этот шаг описан в docs (я не мог найти HTML-версию документов, извините)

Ответ 2

Для таких, как я, прибывающих поздно в поток, сейчас есть множество решений, которые довольно легко установить:

Я успешно установил Django Mollom и Django Simple Captcha, а самая сложная часть - як-бритья вокруг установки PIL на моем Mac. Реализация кода была такой же простой, как предлагали бы документы для каждого.

Ответ 3

У меня была эта проблема, но решение было просто.

Я использую django-registration, и я хочу, чтобы поле reCAPTCHA для регистрации пользователя. Всего за 1 минуту:

  • скачать django-recaptcha (pip install django-recaptcha)

  • установите его в свой проект. То есть скопируйте папку "captcha" в свой проект, добавьте "captcha" в INSTALLED_APPS и добавьте ключи RECAPTCHA_PUBLIC_KEY и RECAPTCHA_PRIVATE_KEY в settings.py тоже (как описано в инструкциях по установке)

  • откройте registration/forms.py и добавьте это поле внутри class RegistrationForm(forms.Form):

    captcha = ReCaptchaField()

    вам также придется импортировать:

    from captcha.fields import ReCaptchaField

И что это. Менее минуты.