Прикручиваем к django-registration django-simple-captcha

4566 2

В одном из проектов потребовалась простая каптча. Сложные пользователей зачастую пугают и нервируют.
Поэтому остановился на django-simple-captcha.
В проекте у меня за регистрацию отвечает django-registration поэтому прикручивать будем к ней.


1. Качаем  django-simple-captcha от автора с  http://code.google.com/p/django-simple-captcha/downloads/

2. Копируем из архива папку captcha в корень нашего проекта.

3. Добавляем в settings.py:

    INSTALLED_APPS = (
        ...
        'captcha',
        ...
    )

4. Добавляем в urls.py:

    urlpatterns = patterns('',
      ...
      url(r'^captcha/', include('captcha.urls')),
      ...
    )

5. Идем в приложение registration где в forms.py

добавляем импорт:

    from captcha.fields import CaptchaField 

а также в класс RegistrationForm последним полем формы добавляем:

    captcha = CaptchaField(label=_("Code in the image"))

6. Добавим локализацию для данного поля. Для этого идем в registration/locale/ru/LC_MESSAGES и в файл django.po добавляем:

    #: forms.py: (Номер строки в файле)
    msgid "Code in the image"
    msgstr "Код на картинке"

После этого в командрой строке переходим в корень приложения registration и выполняем:

    $ django-admin.py compilemessages --locale=ru

7. Перегружаем сервер:

    $ sudo /etc/init.d/apache2 reload
    $ sudo /etc/init.d/apache2 restart


Вуаля! Капча добавлена. Можно заходить на страницу регистрации и начинать ее использовать. Просто и сердито.

P.S. Если Ваш проект многоязычный то 6 шаг стоит повторить для всех локализаций.

 

Комментарии

13 июня 2013 г. 22:02 owlman
В чем это заключается?
13 июня 2013 г. 18:18 ximepa
Не очень верный подход

Контактные данные

 Россия, г. Москва