2011-12-05 10 views
2

私はサイトにフォームを持つDjangoアプリケーションを組み立てていますが、これらのフォームを手動でレンダリングしています(実際には各フィールドをタイプしてAJAXで送信しています)。フォームのないDjangoのRecaptcha?

どのように私のフォームにRecaptchaを統合できますか?助けてくれてありがとう!

+0

この質問は、そこにたくさんのオプションがあります(http://stackoverflow.com/questions/1526399/django-forms-wizard-and-recaptcha)。 –

答えて

1

私はreCAPTCHAのために、このPythonクライアントを使用しています:

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} 
2

reCAPTCHAのクライアントがのpython3では動作しません。私はdjango-recaptcha(https://pypi.python.org/pypi/django-recaptcha/1.0)を使用して終了しました。次に、[...]

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

import captcha.client 

:簡単な文書は、「ReCaptchaField」フォームフィールドを使用してのreCAPTCHAを実装する方法について説明していますが、ちょうどこのようcaptcha.clientから提出機能を使用することができますrecaptcha_response.is_validかどうかを確認します。

INSTALLED_APPSなどにrecaptchaを追加する必要はありません。

関連する問題