首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

odoo 开发入门教程系列-继承(Inheritance)

,提示如下: 模块继承(Model Inheritance) 引用: 查看主题相关文档继承和扩展 我们希望在“Settings/Users & Companies/Users”表单视图中直接显示与销售人员关联房产列表...为此,我们需要向res.users模型添加一个字段,并调整其视图显示它。 Odoo提供了两种继承机制来模块化方式扩展现有模型。...目标: 在用户表单视图中显示与销售人员关联avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展视图应用于根视图之上,而不是就地修改现有视图(通过重写它们)。...这些扩展既可以添加内容,也可以从父视图中删除内容。 扩展视图使用inherit_id字段引用其父视图。...它arch字段包含多个xpath元素,用于选择和更改父视图内容,而不是单个视图

2.2K20

odoo ORM API学习总结兼orm学习教程

其值为包含2元组列表,或者返回前者模型方法,或者方法名称 selection_add (list(tuple(str, str)) – 在重写字段情况下,提供selection扩展。...odoo.api.model(method)[源代码] 修饰一个record-style方法,其中self是一个空记录集,但其内容不相关,只有模型相关,可以理解为不会创建对应数据库记录模型对象。...注意:返回字典key不包含Odoo系统自动生成模型字段:create_uid,create_date,write_date,write_uid,id 字段/视图(Fields/Views)s Model.fields_get...(bool) – 设置为True包含上下文操作 submenu – 已弃用 返回 请求视图组成(包括继承视图扩展) 返回类型 dict 引发 AttributeError...and extension) Odoo提供三种不同机制,模块化方式扩展模型: 从现有模型创建新模型,向副本中添加新信息,但保留原始模块 扩展其他模块中定义模型,替换以前版本 将模型一些字段委派给它包含记录

13.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

odoo 开发入门教程系列-基本视图

在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段视图是在带有操作和菜单XML文件中定义。...列表视图,也叫树(tree)视图, 表格形式显示记录。 视图根元素为。...在自定义搜索视图中添加用户可能过滤字段是非常常见。 搜索视图还可以包含元素,这些元素充当预定义搜索开关。...domain 引用: 本主题相关文档可参考 Search domains. 在odoo中,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。...每个条件都是一个包含字段名、运算符和值三元组。如果指定字段满足作用于值运算符条件,则记录满足条件。

3.2K40

odoo context上下文用法总结

、过滤条件 视图定义 为设置action打开tree列表视图,添加默认搜索,搜索条件为 state字段值等于True 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...> 说明:context属性值中字典键值如果为模型中定义字段名称,则该字段名称必须元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表)中,否则会出现类似错误提示...> 用于视图关系字段,传递数据给模型方法 模型设计 #!...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!

2K20

odoo 开发入门教程系列-模型之间关系(Relations Between Models)

模型之间关系(Relations Between Models) 上一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景中,我们都需要不止一个模型。此外,模型之间链接是必要。...人们可以很容易地想象一个模型包含客户,另一个模型包含用户列表。你可能需要参考任何现有业务模型客户或用户。...") 按约定,many2one 字段_id 后缀。...首先,我们不需要所有模型操作或菜单。某些模型只能通过另一个模型访问。在我们练习中就是这样:报价总是通过房产获得。 其次,尽管property_id字段是必需,但我们没有将其包含视图中。...odoo如何知道我们报价与哪个房产相关?这就是使用odoo框架一部分魔力:有时候事情是隐式定义

4.3K40

Odoo开发指北 01 初识Odoo

应用服务层:包含所有企业模块逻辑(报表引擎、工作流引擎等),向下提供ORM引擎,向上提供web服务,控制服务器与浏览器通信。 客户层:包括GUI客户端以及Web客户端。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它基础上进行修改、扩展,生成自己模块。...类,定义出模型类会自动与Odoo提供ORM接口匹配,也就是说这些模型类会自动存入sql中。...Odoo 脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型类...构建动作对象,关联某个具体菜单项响应。 构建视图对象:主要是list、tree、form、search视图

2.3K30

odoo 开发入门教程系列-一些用户界面

当需要添加数据格式简单时,用CSV格式还是很方便,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTML tags help field。...常见模式为 菜单> action > 视图。为了访问记录,用户在几个菜单级中导航。最深层是触发打开记录列表action。 操作(Actions) 参考: 主题相关文档可以查看 Actions....字段定义中,添加 default=X, 其中X 可以是Python文本值(boolean, integer, float, string) ,也可以是一个model对象自身为入参并返回一个值函数:...参考: 主题相关文档可参考 保留字段名称. odoo为预定义行为保留了一些字段名称。...当需要相关行为时,需要在模型中定义这些保留字段。 练习 -- 添加active字段 添加一个 active 字段到estate.property 模型

2.8K30

odoo 权限管理学习总结

-> Users & Companies -> Groups),并为用户分配不同用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便管理用户组,odoo还支持对用户组...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段视图显示。...如果当前用户不在列出组中,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应中删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate..."/> 验证,发现界面上,未授权上述框选权限用户已经看不到上述字段了 注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,...接口,会调用fields_view_get方法,可以重写此方法控制xml显示效果(参考网络资料,未实践验证) 按钮权限(按钮级别) 类似字段权限控制,仅需在在对应视图中,为目标按钮元素

10K20

odoo 开发入门教程系列-模型和基本字段

模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...odoo框架提供了数据库交互工具 开始练习前,请确保estate模块已被安装,也就是说必须installed状态出现在Apps列表中,如下 对象关系映射(Object-Relational Mapping...ORM 层是odoo一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 ModelPython类。可以通过在定义中设置属性来配置model。...有两大类领域字段:‘简单’字段--直接存储在模型表中原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...自动创建字段(Automatic Fields) 参考: 该话题相关文档可参考 Automatic fields. odoo会在所有model(当然,也可以配置禁止自动创建某些字段)中创建少数字段

2.2K30

Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

在这篇教程里我们将会了解到 Odoo 模型一些其他类型字段和特殊机制,而我依然会继续带领大家一起完善我们 Todo 应用,不断地往里面添加一些新功能特性,让它看起来更丰满也更实用一些。...选择字段 在上一篇教程中,我们已经创建好了待办事项模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们需求。...在上一篇教程中我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后样子,除了从应用列表中找到模块进行升级外,我们还可以在命令行中给 Odoo 启动命令加上参数 -u todo 指定升级...很多时候我们会需要用不同颜色对待办事项进行标记,例如我们会希望已经过期任务红色标记来提醒我们,这个任务过期了。...这个需求跟时间有关,并且时间是流动(一直在变化),所以我们应该要有一个方法在用户每次打开待办事项之前,把这个结果计算好,并且反馈给用户,还好 Odoo ORM 已经为我们实现了相关机制——计算字段

1.3K10

odoo 开发入门教程系列-一个新应用

以下为包含一些广告主列表视图 form视图顶层区域概括了房产重要信息,比如name,Property Type, Postcode等等。...列表记录详情页中,第一个tab包含了房产描述信息,比如:bedrooms, Living area, Garage,Garden 第二个tab页,列出了房产报价。...我们可以在这里看到,潜在买家可以提供高于或低于预期售价报价,取决于卖方是否接受报价。 准备插件目录 参考: 和该主题相关文档可参考 manifest....其必不可少字段为 name, 但通常会包含更多信息。...CRM file(如果打不开,可参见下文)为例,为了提供模块描述信息 (name, category, summary, website…), 它列出了它依赖(depends)。

1.2K10

odoo wizard界面显示带复选框列表及勾选数据获取

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...向导只是一个继承TransientModel而非model模型。...TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久;它们在一定时间后自动从数据库中删除。...wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图Action,可以在ir.actions.act_window定义中添加

5.2K60

odoo 为form表单视图添加chatter功能

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如图,给表单新增一个类似聊天窗口,当记录一些表单活动(本例为自动记录当前记录状态变化) 需求实现 模型定义...odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪字段设置tracking属性,并设置属性值为真值 #!...,该模型类型为models.AbstractModel,其定义文件为 odoo14\odoo\addons\mail\models\mail_thread.py,其字段命名均以message_开头...tracking 该属性为True或数字时,打开针对该属性所属字段修改日志--当所属字段内容发生变化时,系统会将该字段变化前后值写入日志中,这个数字大小影响变更日志在日志中排序。...,类型为models.AbstractModel,定义在文件 odoo14\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应模型定义中

69120

odoo 开发入门教程系列-QWeb简史

QWeb简史 到目前为止,我们房地产模块界面设计相当有限。构建列表视图很简单,因为只需要字段列表。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中记录卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 在我们地产应用程序中,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...练习--制作一个最小看版视图 根据上述提供简单例子,为房产创建一个最小化看板视图。唯一展示字段为name....在上面的示例中,字段name被添加到元素中,但state在它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。

2K20

odoo 开发入门教程系列-约束(Constraints)

约束(Constraints) 上一章介绍了向模型中添加一些业务逻辑能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误数据?...例如,在我们房地产模块中,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。...SQL 参考:与此主题相关文档可以查看 Models 和PostgreSQL文档 我们通过模型属性_sql_constraints来定义SQL约束,该属性被赋值为一个包含三元组(name, sql_definition..., ] 练习--添加SQL约束 添加以下约束到对应模型: 房产预期价格必须为正数 房产售价必须为正数 报价必须为正数 房产标签名称和类型名称必须唯一 使用-u estate选项重新启动服务器查看结果...Python约束定义为用 constrains()修饰方法,并在记录集上调用。修饰符指定约束中涉及哪些字段。当修改这些字段任何字段时,将自动计算约束。

1.4K20

odoo 开发入门教程系列-模块交互

为此,我们需要在estate_account模块中为创建一个模型,继承estate.property模型。...模块中正确目录创建 estate_property.py 文件 _inherit estate.property 模块 重写 action_sold 方法(你可能已经将该方法命名为不同名称了) 返回...不幸是,没有一种简单方法可以知道如何在Odoo中创建任何给定对象。大多数时候,有必要查看其模型找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...为此在account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2many和Many2many使用通用ORM方法中描述特殊“commands”。...下面是一个在创建test.model时包含一个One2many字段line_ids简单示例: def inherited_action(self): self.env["test.model"

1.5K10

ODOO优化层级关系查询效率方法

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码中。 使用字段来关联上层记录。...使用和字段来进行记录所属层级,当时看书时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录效率。...(如递归查询文件夹文件) Odoo中为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...,获取每个产品目录各自数值 注:这里可以发现,上层目录 添加数值 通过上面的展示,可以清楚看到所有产品目录各自包含结构。...凡事皆有两面,这种存储特性会在数据库中添加多余字段。其实是以空间换时间。

2.2K80
领券