Простой в использовании django captcha или приложение для регистрации с captcha?
Я хочу реализовать регистрацию пользователя, используя captcha в Django.
Рабочий процесс django-registration - отличное приложение, но у него нет captcha.
Какой captcha вы бы рекомендовали использовать с ним?
Существуют ли другие варианты регистрации + captcha или полезные ссылки на эту тему?
Это должно работать с Django-1.1 и не слишком сложно установить.
Ответы
Ответ 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
И что это. Менее минуты.