Odoo Model内容详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826286.html
一:Odoo模型属性
1:_name
模型的唯一标识:如果没有继承其他模型时,必须指定该属性。
2:_rec_name
模型记录对象的显示名,如设置该属性则返回其指定的字段的值作为对象的显示名;
不设置则默认显示字段为name的字段值;
如无name字段则显示"模块名,id";
也可以重写_name_get()方法,自定义模型记录对象的拼接显示名。
3:_log_access
是否往模型增加日志字段(create_uid
, create_date
,write_uid
, write_date
),默认为True。
4:_auto
是否自动为该模型创建数据库表,默认为True,详见BaseModel._auto_init方法。
_table
:数据库对象名称。缺省时数据库对象名称与_name指定值相同(.
替换为下划线)。_sequence
:数据库id字段的序列。默认自动创建序列。_order
:数据显示排序。所指定值为模型字段,按指定字段和方式排序结果集。
例:_order = "create_date desc":根据创建时间降序排列。可指定多个字段。
不指定desc默认升序排列;不指定_order默认id升序排列。
_constraints
:自定义约束条件。模型创建/编辑数据时触发,约束未通过弹出错误提示,拒绝创建/编辑。
格式:
_constraints = [(method, 'error message', [field1, ...]), ...]
method
:检查方法。返回True|Falseerror message
:不符合检查条件时(method返回False)弹出的错误信息[field1, ...]
:字段名列表,这些字段的值会出现在error message中。
_sql_constraints
:数据库约束。
例:
_sql_constraints = [ ('number_uniq', 'unique(number, code)', 'error message') ]
会在数据库添加约束:CONSTRAINT number_uniq UNIQUE(number, code)
_inherit
:单一继承。值为所继承父类_name标识。如子类不定义_name属性,则在父类中增加该子类下的字段或方法,不创建新对象;如子类定义_name属性,则创建新对象,新对象拥有父类所有的字段或方法,父类不受影响。
格式:
_inherit = '父类 _name'
_inherits
:多重继承。子类通过关联字段与父类关联,子类不拥有父类的字段或方法,但是可以直接操作父类的字段或方法。
格式:
_inherits = {'父类 _name': '关联字段'}