Anthony, sorry for the typo. I meant calling onvalidation=, and not
onaccept
That is the behavior I'm expecting, since I've seen that work like so
before. Here's a stripped-down version of the function:
def cnv():
c_hash=request.args(0)
form=SQLFORM.factory(
Field('card_number','string'
,label='Card number',comment='with dashes')
,requires=CRYPT(auth.settings.hmac_key))
if form.accepts(request.vars,session):
#import ipdb;ipdb.set_trace()
#if c_hash!= form.vars.card_number: #<------ does not work
if CRYPT(auth.settings.hmac_key)(form.vars.card_number)
[0]==c_hash:
db.card.validated.writable=
db.card.modified_by.writable=True
db(db.card.alnum==c_hash).update(validated=True)
response.flash='Card number validated.'
else:
form.errors.card_number='Card number is not valid!'
return dict(form=form)
On May 10, 12:11 pm, Anthony <[email protected]> wrote:
> On Monday, May 9, 2011 10:59:46 PM UTC-4, pbreit wrote:
>
> > Do filters work with SQLFORM.factory? I'm not sure CRYPT returns an
> > encrypted string so much as it causes the string to be encrypted when
> > SQLFORM puts it in the DB. I could be wrong.
>
> When I create a SQLFORM.factory with a requires=CRYPT and call form.accepts,
> I get back a hash of the input, even without any db IO.
>
> Anthony