I don't know if having a field using the same name as the table was a
problem, but I changed it anyway. It was confusing.
But I finally figured out my problem was in the following lines (Note that
I replaced the table name from mpn to part:
db.part.iditm.requires = IS_IN_DB(db, 'item.ipn')
db.part.idbsn.requires = IS_IN_DB(db, 'business.name')
I just modified the code to be:
db.part.iditm.requires = IS_IN_DB(db, 'item.id', '%(ipn)s')
db.part.idbsn.requires = IS_IN_DB(db, 'business.id', '%(name)s')
Now everything is working as expected.
Thanks,
JF