Eliminacion en Cascada y Restricciones en campos Many2One
Un Error muy comĆŗn durante la programaciĆ³n de clases y en especial al utilizar los campos Many2One y One2Many en Odoo es la definiciĆ³n de los atributos.
Existe uno en especial llamado "ondelete", este atributo tiene 3 funciones:
Existe uno en especial llamado "ondelete", este atributo tiene 3 funciones:
- Cascade. Permite eliminar los registros ligados a una clase, cuando tiene un campo one2many.
- Restrict. Impide la eliminaciĆ³n de la fila referenciada.
- Set null. Modifica el campo a Nulo Ć³ False, cuando el registro de la relaciĆ³n sea Eliminado.
Un ejemplo de ondelete:
class ejemplo_clase(osv.osv): _name = 'ejemplo.clase' _description = 'Descripcion del Modelo' _columns = { 'lineas': fields.one2many('ref_id','ejemplo.linea', 'Linea'), } class ejemplo_linea(osv.osv): _name = 'ejemplo.linea' _description = 'Descripcion del Modelo' _columns = { 'ref_id': fields.many2one('ejemplo.clase', 'Referencia', ondelete="cascade"), }
Lo que pasara en el ejemplo anterior es que cuando se borre un registro de la tabla ejemplo_clase, se borraran los registros de la tabla ejemplo_linea que tenga asignados.
0 comentarios:
Publicar un comentario