限制,无操作并在字段的ondelete可选参数中设置默认值

atc*_*han 3 openerp

我正在学习关于ondelete参数的字段的可选参数.这些是预定义的值:"cascade","set null","restrict","no action","set default"

任何人都可以详细解释一下

  • RESTRICT和NO ACTION之间的区别.
  • 如何在OpenERP 7中使用SET DEFAULT?
    • 在哪里设置字段的默认值?
    • 如何在python代码本身中定义set default value?

tap*_*per 10

举例来说,一种Course带有Student秒.在Students上是一个外键Course.在ondelete确定与该发生的事情student_id列(上Course)的时候Student被删除.

  • CASCADE:删除Course与匹配的记录student_idStudent被删除

  • RESTRICT:Student只要与a相关就无法删除Course.

  • NO ACTION:类似,但是是延迟检查:您可以删除Student但是必须确保提交事务时完整性正常.

  • SET DEFAULT:使用openerp默认定义(参见_defaultspython模型定义中的dict)

  • SET NULL:当a Student被删除时,student_id变为NULLDB.

在Python中,您可以在_columns定义中找到它们:

_columns = {
    'student_id': fields.many2one(
        'my.student',
        'Student',
        ondelete='set null',
    ),
Run Code Online (Sandbox Code Playgroud)