def clean(self, value):
     super(CaptchaField, self).clean(value)
     response, value[1] = value[1].strip().lower(), ''
     CaptchaStore.remove_expired()
     try:
         store = CaptchaStore.objects.get(response=response, hashkey=value[0], expiration__gt=datetime.datetime.now())
         store.delete()
     except Exception:
         raise ValidationError(getattr(self,'error_messages',dict()).get('invalid', _('Invalid CAPTCHA')))
     return value
 def handle(self, **options):
     from cmh.captcha.models import CaptchaStore
     import datetime
     verbose = int(options.get('verbosity'))
     expired_keys = CaptchaStore.objects.filter(expiration__lte=datetime.datetime.now()).count()
     if verbose >= 1:
         print "Currently %s expired hashkeys" % expired_keys
     try:
         CaptchaStore.remove_expired()
     except:
         if verbose >= 1 :
             print "Unable to delete expired hashkeys."
         sys.exit(1)
     if verbose >= 1:
         if expired_keys > 0:
             print "Expired hashkeys removed."
         else:
             print "No keys to remove."