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_uidcreate_date,write_uidwrite_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|False
error 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': '关联字段'}

posted @ 2019-05-07 16:24  keenyeh  阅读(1435)  评论(0编辑  收藏  举报