Задать вопрос
@emeraldsinner

Как прикрутить django-simple-captcha?

Пытаюсь прикрутить django simple captcha(django-simple-captcha.readthedocs.org/en/latest/us... к форме регистрации, которая состоит из нескольких шагов.
Вот форма:
class FiveStepForm(forms.Form):
    captcha = CaptchaField()
    check_field = forms.BooleanField(required=False)

    def clean_check_field(self):
        data = self.cleaned_data
        if data.get('check_field'):
            return data
        else:
          raise forms.ValidationError("In order to use our services, you must agree to our's Terms of Service.")


Вот шаблон:
{{ wizard.form.captcha.errors }}
{{ wizard.form.captcha }}
<script>
    $(function() {
    // Add refresh button after field (this can be done in the template as well)
    $('img.captcha').after(
            $('<a href="#void" class="captcha-refresh">Refresh</a>')
            );

    // Click-handler for the refresh-link
    $('.captcha-refresh').click(function(){
        var $form = $(this).parents('form');
        var url = location.protocol + "//" + window.location.hostname + ":"
                  + location.port + "/captcha/refresh/";

        // Make the AJAX-call
        $.getJSON(url, {}, function(json) {
            $form.find('input[name="4-captcha_0"]').val(json.key);
            $form.find('img.captcha').attr('src', json.image_url);
        });

        return false;
    });
});
</script>


Проблема в том, что постоянно пишет
invalid CAPTCHA
. Заметил, что если разместить ее не на последнем шаге регистрации, то проходит нормально, но после последнего возвращает на первый шаг и дает ошибку. Кроме того заметил, что при генерации капчи создается запись в БД соответствующая и если я вверно ввел капчу, то запись стирает и создает сразу новую с новой капчей, если ввести неверно то создает новую, но старую не стирает. Может кто стыкался с подомным? Что посоветуете? Спасибо.
  • Вопрос задан
  • 3080 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы