many2one 字段的 ondelete

OpenERP里面many2one字段有一个属性是ondelete如下,。

  'parent_id': fields.many2one('product.category','Parent Category', select=True, ondelete='cascade'),

这个是product.category的一个字段,这个字段是many2one作为他的父字段。你可以按照以下的顺序来创建一个产品分类
电子产品
电子产品/电脑
当你删除电子产品的时候,电脑也会自动被删除,起到作用的就是 ondelete=’cascade’。在openERP里有那几个的ondelete呢?
有这些

** no atction:相互不影响**
** cascade:主键被删除,外键对应的记录也删除。直接删除外键的记录,不影响主键。**
** restrict: 如果存在外键,主键删除的时候报错。**
** set null:主键被删除,外键变为空值。**
** set default:主键被删除,外键变为默认值。**

这也是postgresSQL本身有的特性http://www.postgresql.org/docs/8.2/static/ddl-constraints.html