Рекапча в джанго без формы? - PullRequest
2 голосов
/ 05 декабря 2011

Я собираю приложение Django, которое имеет формы на сайте, но я рендеринг этих форм вручную (то есть фактически набираю каждое поле и отправляю их с AJAX).

Как я могу интегрировать Recaptcha вмои формы?Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 24 мая 2014

recaptcha-клиент не работает с python3. В итоге я использовал django-recaptcha (https://pypi.python.org/pypi/django-recaptcha/1.0).). В краткой документации объясняется, как реализовать recaptcha с помощью поля формы 'ReCaptchaField', но вы можете просто использовать функцию submit из captcha.client, например:

import captcha.client

[...]

recaptcha_response = captcha.client.submit(  
    request.POST.get('recaptcha_challenge_field'),  
    request.POST.get('recaptcha_response_field'),  
    '[[privatekey]]',  
    request.META['REMOTE_ADDR'],)  

Затем вы проверяете, есть ли recaptcha_response.is_valid.

Нет необходимости добавлять recaptcha в INSTALLED_APPS или что-либо еще.

1 голос
/ 05 декабря 2011

Я просто использую этот клиент Python для recaptcha:

http://pypi.python.org/pypi/recaptcha-client

тогда мой взгляд выглядит так:

captcha_key = get_config('RECAPTCHA_PUB_KEY',None)
recaptcha_challenge_field = request.POST.get('recaptcha_challenge_field', None)
recaptcha_response_field = request.POST.get('recaptcha_response_field', None)
check_captcha = captcha.submit(recaptcha_challenge_field, recaptcha_response_field, settings.RECAPTCHA_PRIVATE_KEY, request.META['REMOTE_ADDR'])
if check_captcha.is_valid is False:
    log.info('captcha_error : %s' % check_captcha.error_code)
    return {'TEMPLATE':template_name,'captcha_error': True,'register_form': f,'captcha_key':captcha_key ,'next':redirect_to}
...