diff options
author | supriya <supriya@dragbox.(none)> | 2012-09-26 15:49:52 +0530 |
---|---|---|
committer | supriya <supriya@dragbox.(none)> | 2012-09-26 15:49:52 +0530 |
commit | 94535d4adc3a4960795d22e3b229a8375de10b74 (patch) | |
tree | 8d77de86b443495d67360dcd40786f2b8208d334 /recaptcha/fields.py | |
parent | cad11e2f7ed848cdfd7779451bb0f4f931e062c3 (diff) | |
download | gnowsys-94535d4adc3a4960795d22e3b229a8375de10b74.tar.gz |
all modules integrated
Diffstat (limited to 'recaptcha/fields.py')
-rw-r--r-- | recaptcha/fields.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/recaptcha/fields.py b/recaptcha/fields.py new file mode 100644 index 00000000..ce79a6db --- /dev/null +++ b/recaptcha/fields.py @@ -0,0 +1,27 @@ +from django.conf import settings +from django import forms +from django.utils.encoding import smart_unicode +from django.utils.translation import ugettext_lazy as _ + +from recaptcha.widgets import ReCaptcha +from recaptcha.client import captcha + +class ReCaptchaField(forms.CharField): + default_error_messages = { + 'captcha_invalid': _(u'Invalid captcha') + } + + def __init__(self, *args, **kwargs): + self.widget = ReCaptcha + self.required = True + super(ReCaptchaField, self).__init__(*args, **kwargs) + + def clean(self, values): + super(ReCaptchaField, self).clean(values[1]) + recaptcha_challenge_value = smart_unicode(values[0]) + recaptcha_response_value = smart_unicode(values[1]) + check_captcha = captcha.submit(recaptcha_challenge_value, + recaptcha_response_value, settings.RECAPTCHA_PRIVATE_KEY, {}) + if not check_captcha.is_valid: + raise forms.util.ValidationError(self.error_messages['captcha_invalid']) + return values[0] |