Пытаюсь прикрутить 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
. Заметил, что если разместить ее не на последнем шаге регистрации, то проходит нормально, но после последнего возвращает на первый шаг и дает ошибку. Кроме того заметил, что при генерации капчи создается запись в БД соответствующая и если я вверно ввел капчу, то запись стирает и создает сразу новую с новой капчей, если ввести неверно то создает новую, но старую не стирает. Может кто стыкался с подомным? Что посоветуете? Спасибо.