web2py Inserción y modificación por medio de diccionarios

Un problema usual es el de la necesidad de insertar o modificar registros de una tabla cuando el nombre de la tabla, el campo a modificar y el valor del campo se han almacenado en variables.

Por  ejemplo: nombredetablanombredecampo y valor.

La inserción se puede hacer usando la siguiente sintaxis:

db[nombredetabla].insert(**{nombredecampo:valor})

La actualización del registro para un id dado se puede hacer con:

db(db[nombredetabla]._id==id).update(**{nombredecampo:valor})

Observa que hemos usado tabla._id en lugar de tabla.id. De esta forma la consulta funciona incluso para tablas con un campo de tipo «id» que tiene un nombre distinto de «id».