The web2py documentation indicates that a reference field has the following default validator:
IS_IN_DB(db, table.field, format)
I suggest the default validator to be described as:
IS_IN_DB(db, table._id, table._format)
If you use any other field besides table._id in the validator, this causes errors when trying to insert a new row (e.g. via the admin interface)
Maybe it is worth indicating that when -for whatever reason- you want to change the validator, you must refer back to the id and not to another field of the referring table?
Or am I wrong in this reasoning?