Простая в использовании Django капча или приложение для регистрации с капчей? - PullRequest
28 голосов
/ 16 февраля 2010

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

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

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

Ответы [ 3 ]

21 голосов
/ 16 февраля 2010

Django-регистрация довольно продолжительна. Одним из способов его расширения является предоставление пользовательской регистрационной формы. Я бы рекомендовал использовать 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-registration использовать ваш бэкэнд. Этот шаг описан в документах (я не могу найти HTML-версию документов, извините)

18 голосов
/ 24 апреля 2013

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

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

  1. загрузить django-recaptcha (pip install django-recaptcha)

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

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

    captcha = ReCaptchaField()

    вам также нужно будет импортировать:

    from captcha.fields import ReCaptchaField

И все.Меньше минуты.

16 голосов
/ 07 января 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...