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."