Quick question,

If I put my validators in the model like this:

     db.data.speedtesturl.requires=IS_NOT_IN_DB(db,
'data.speedtesturl',error_message='This speedtest URL is already in
the database. Please provide another')

They only seem to work if I use SQLFORM.

If I create a SQLFORM and then add an extra field to it like this:

    speedtesturl=TR(LABEL('Speedtest
URL'),INPUT(_name='speedtesturl',_type='text',))
    form[0].insert(-1,speedtesturl)

and then add the data to the database a little later like this:

    db.data.insert(**dict(form.vars))

The validator doesn't validate the data from the extra field.

To validate the data in the extra field I have to call the validator
in the controller like this:

    speedtesturl=TR(LABEL('Speedtest
URL'),INPUT(_name='speedtesturl',_type='text',
requires=IS_NOT_IN_DB(db, 'data.speedtesturl')))

Am I right in thinking then that validators written in the model only
work against data submitted using SQLFORM, and not against data
submitted in other ways?

Thanks,

Chris

Reply via email to