ORM API

ORM API

模块

模块字段被定义为模块本身的属性,默认情况下,该字段的标签名(即用户可见的名称)是该字段名称的大写版本,但是可以用string参数覆盖。

field2 =fields.Integer(string="Field Label")

字段类型和参数的列表,详见字段参考。默认值被定义为字段参数,是一个值:

name=fields.Char(default="a value")

API:Application Program Interface

每个数据库会自动为实例化每种模型一次。这些实例表示每个数据库上的可用模型,并且取决于该数据库上安装了哪些模块。每个实例的实际类都是从相应模型的Python类创建和继承的。

每个模型实例都是一个“记录集”,即模型记录的有序集合。记录集由诸如*browse()*, *search()*或字段访问之类的方法返回。记录没有显式表示:记录表示为一个记录的记录集。

若要创建不应实例化的类,可以将*_register*属性设置为False。

*模块内置字段:*

*_auto* *= False***

是否创建数据库表。如果设置为*False*,则覆盖*init()*以创建数据库表。

对于Model和TransientModel,自动默认为True;对于AbstractModel,默认为False。

若想创建无数据库表的模型,可继承模型 *AbstractModel*.

*_log_access*

ORM是否应自动生成和更新访问日志字段。默认为*_auto*.设置的值。

*_table* *= None***

​ 依据*_auto*,模块使用数据库表的名称

*_sequence* *= None***

SQL序列用于ID字段

*_sql_constraints* *= []***

SQL约束[(name, sql_def, message)]

*_register* *= True***

注册表是否可见

*_abstract* *= True***

是否抽象模型。

*_transient* *= False***

是否瞬态模型。

*_name* *= None***

​ 模块名称(in dot-notation, module namespace)

*_description* *= None***

​ 模块信息

*_inherit* *= None***

​ Python继承的模块:(类型是字符或含字符的列表)

​ 如果设置了_name,则要从其继承的父模型的名称。

如果未设置_name,则为单个模型的名称以就地扩展。

*_inherits* *= {}***

字典{“ parent_model”:“ m2o_field”}将父对象的_name映射到要使用的相应外键字段的名称:

作者:雷行

posted @   中亿丰数字科技  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示