ORM之模型对象Model
2017-03-19 本文已影响148人
路峰
模型对象Model
Odoo的模型对象在odoo模块的models.py文件中,最基础的对象是BaseModel;
Odoo的模型对象有三个:AbstractModel、Model、TransientModel
BaseModel
BaseModel是一切模型的基础
- _auto = False 是否在后台创建数据表
- _register = False
- _abstract = True 是否是抽象模型
- _transient = False 是否是临时模型
- _name = None 模型名称
- _description = None 模型描述
- _custom = False 是否自定义模型
- _inherit = None 被继承的模型名称
- _inherits = {} 继承关系
- _table = None 模型对应的数据表的名称,默认值是_name的值中将.转换成_
- _sql_constraints = [] SQL约束
- _rec_name = None 在其他模型中引用此模型时显示的字段,默认是name
- _order = 'id' 记录排序
- _parent_name = 'parent_id' 关联父级记录的字段
- _parent_store = False 值为True时会计算parent_left和parent_right
- _parent_order = False 父级记录排序字段
AbstractModel
AbstractModel = BaseModel;AbstractModel 是一个抽象模型不会在数据库创建对应表,Model可以继承AbstractModel,AbstractModel为多个Model提供相同属性的统一声明
Model
Model继承自AbstractModel,但是Model的 _auto=False , _abstract = False;
Model的模型对象在模块安装或升级的时候会自动在数据库中创建相应的数据表
TransientModel
TransientModel继承自Model,但是TransientModel的_transient = True,TransientModel是一种特殊的Model,TransientModel对应的数据表中的数据系统会定时的清理;TransientModel的数据只能做临时数据使用,一般向导对象模型会声明成TransientModel