captcha.py 953 B

123456789101112131415161718192021222324252627282930
  1. from django.forms.fields import CharField
  2. from django.forms.widgets import TextInput
  3. from django.utils.translation import ugettext_lazy as _
  4. from recaptcha.client.captcha import API_SSL_SERVER, API_SERVER, VERIFY_SERVER
  5. class ReCaptchaWidget(TextInput):
  6. pass
  7. class ReCaptchaField(CharField):
  8. widget = ReCaptchaWidget # Fakey widget for FormLayout
  9. api_error = None # Api error
  10. def __init__(self, label=_("Verification Code"), *args, **kwargs):
  11. kwargs['label'], kwargs['required'] = label, False
  12. super(ReCaptchaField, self).__init__(*args, **kwargs)
  13. class QACaptchaField(CharField):
  14. pass
  15. def get_captcha_dict(settings, api_error = None):
  16. error_param = ''
  17. if api_error:
  18. error_param = '&error=%s' % api_error
  19. return {
  20. 'api_server': API_SERVER,
  21. 'public_key': settings['recaptcha_public'],
  22. 'error_param': error_param,
  23. }