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

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

模块交互 在上一章,我们使用继承来修改模块行为。在我们房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...不幸是,没有一种简单方法可以知道如何在Odoo创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当。 学习一个好方法是看看其他模块是如何完成你想做事情。...create 方法不接受结果集作为字段。...为此在account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2many和Many2many使用通用ORM方法描述特殊“commands”。

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

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

    模型之间关系(Relations Between Models) 上一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景,我们都需要不止一个模型。此外,模型之间链接是必要。...在我们房地产模块,我们想定义房产标签概念。例如,房地产是“舒适”或是“翻新” 一个地产可以有多个标签,一个标记可以分配给多个房产。这得到了many2many概念支持。...many2many是一种双向多重关系:一侧任何记录都可以与另一侧任何数量记录相关。...,many2many字段拥有_ids 后缀。...它支持标准Python集合操作,len()和iter(),以及recs1 | recs2等额外集合操作。

    4.5K40

    odoo 开发入门教程系列-计算字段和变更(Computed Fields And Onchanges)

    然而,我们可能需要给定模型字段之间链接。有时,一个字段是根据其他字段确定,有时我们希望帮助用户输入数据。...自然地我们将总面积定义这两者总和,我们将为此使用计算字段概念,即给定字段将从其他字段中计算出来。 到目前为止,字段已直接存储在数据库并直接从数据库检索。字段也可以被计算。...在这种情况下,不会从数据库检索字段,而是通过调用模型方法来动态计算字段。 要创建计算字段,请创建字段并将其属性compute设置为方法名称。...依赖(Dependencies) 计算字段通常取决于计算记录其他字段。ORM期望开发人员使用修饰符depends()指定计算方法上依赖项。...当计算字段依赖于其他计算字段时,更改可能会触发大量重新计算。这会导致性能不佳。

    3.1K30

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

    选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页内联tree视图("Offers" Tab页)列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。...TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久;它们在一定时间后自动从数据库删除。...wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...,供web端使用,用于区分不同页面操作数据,'estate.property.offer_3'为供web端使用记录ID,'data'键值代表记录数据,其id键值代表记录在数据库主键id,context...> 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框时,将当前选取记录存到浏览器sessionStorage,可选 odoo14\custom\estate

    5.3K60

    何在MySQL获取表某个字段为最大和倒数第二条整条数据?

    在MySQL,我们经常需要操作数据库数据。有时我们需要获取表倒数第二个记录。这个需求看似简单,但是如果不知道正确SQL查询语句,可能会浪费很多时间。...在本篇文章,我们将探讨如何使用MySQL查询获取表倒数第二个记录。 一、查询倒数第二个记录 MySQL中有多种方式来查询倒数第二个记录,下面我们将介绍三种使用最广泛方法。...ID(或者其他唯一)。...二、下面为大家提供一个测试案例 我们来看一个例子,假设我们有一个名为users表,其中包含以下字段: CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT...------+-----+ | id | name | age | +----+------+-----+ | 4 | Lily | 24 | +----+------+-----+ 三、查询某个字段为最大整条数据

    1K10

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

    在介绍特定Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...第一继承机制允许模块通过以下方式修改在另一个模块定义模型行为: 向模型添加字段 覆盖模型字段定义 给模型添加约束 给模型添加方法 重写模型现有方法 第二种继承机制...odoo,第一种机制最常用。在我们例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...它arch字段包含多个xpath元素,用于选择和更改父视图内容,而不是单个视图: ...,作为同级元素 attributes 使用xpath主体特定属性元素更改匹配元素属性 当匹配单个元素时,可以直接在要查找元素上设置position属性。

    2.2K20

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

    模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...最重要属性为 _name,该属性定义了model在odoo系统属性。...有两大类领域字段:‘简单’字段--直接存储在模型表原子,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...required (bool, default: False) 如果为 True, 表示该字段不能为空。创建记录时必须拥有默认或给定。...自动创建字段(Automatic Fields) 参考: 该话题相关文档可参考 Automatic fields. odoo会在所有model(当然,也可以配置禁止自动创建某些字段)创建少数字段

    2.3K30

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

    这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件记录来定义。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认 某些字段只读 当记录重复时,某些字段不能被拷贝 在我们房产业务案例,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝...我们看到一些属性,required=True,会影响数据库表模式。其他属性也将影响视图或提供默认。 练习 -- 添加一些属性到字段。...字段定义,添加 default=X, 其中X 可以是Python文本(boolean, integer, float, string) ,也可以是一个以model对象自身为入参并返回一个函数:...字段默认为‘Unknown’,而last_seen 字段默认为当前时间 练习 -- 设置默认 添加适当默认: 卧室数量默认为 2 可用日期默认为3个月内 修改 odoo14\custom\

    2.9K30

    ODOO配置文件etcodoo.conf配置详解

    **基本参数 Odoo通过端口5432通过UNIX套接字连接到本地postgres。...当Postgres部署不是本地部署和/或不使用安装默认时,可以使用数据库选项覆盖此设置。 打包安装程序将自动创建一个新用户(odoo),并将其设置为数据库用户。 数据库管理界面受管理密码设置保护。...此设置只能使用配置文件进行设置,并在执行数据库更改之前进行简单检查。应将其设置为随机生成,以确保第三方不能使用此接口。 所有数据库操作都使用数据库选项,包括数据库管理界面。...工作进程数量计算 数量规则:(#CPU * 2) + 1 Cron工作者需要CPU 1个工作进程~=6个并发用户 内存大小计算 我们认为20%请求是繁重请求,而80%是简单请求 一个繁重工作,当所有的计算字段都设计好了...这样做时,您需要将更多http头转发给Odoo,并在Odoo配置激活代理模式,让Odoo读取这些头。

    7.1K31

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

    在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件定义。...它们是ir.ui.view model实例。 在我们estate模块,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示不仅仅是名称。 在表单视图中,应该对字段进行分组。...其最基础版本仅简单列出要在表显示所有字段(其中每个字段都是一列): <field name="...在<em>odoo</em><em>中</em>,domain对记录上<em>的</em>条件进行编码:domain是用于选择模型记录子集<em>的</em>条件列表。每个条件都是一个包含<em>字段</em>名、运算符和<em>值</em><em>的</em>三元组。...如果指定<em>字段</em>满足作用于<em>值</em><em>的</em>运算符<em>的</em>条件,则记录满足条件。

    3.3K40

    何在 CentOS 8 上安装 Odoo 13

    这个指南讲解了如何在 CentOS 8 上一个 Python 虚拟机环境从源码安装 Odoo 13。我们将会从 Github 上编译 Odoo 源码并且配置 Nginx 作为反向代理服务器。...Odoo 推荐版本是0.12.5,这个版本不在 CentOS 8 官方软件源仓库。...通过 Odoo 官方文档计算工作进程数量以及需要 RAM 内存大小,你可以使用下面的公式: 工作进程数量计算: 工作进程最大数量理论 = (system_cpus * 2) + 1 1 个工作进程可以服务...十二、总结 这篇指南带你浏览了如何在 CentOS 8 上 Python 虚拟环境 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境如何启用多进程以及优化 Odoo

    3.9K20

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

    表单视图也是如此:尽管使用了一些标记,或,但在设计方面几乎没有什么可做。 然而,如果我们想给我们应用程序一个独特外观,就必须更进一步,能够设计新视图。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 在我们地产应用程序,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...提示: 必须在ir.actions.act_window对应view_mode添加 kanban 修改odoo14\custom\estate\views\estate_property_views.xml...在上面的示例字段name被添加到元素,但state在它之外。当我们需要字段但不想在视图中显示它时,可以将其添加到元素之外。

    2.1K20

    odoo 权限管理学习总结

    res_partner表,那么在odoo如何区分用户类型以及如何做权限控制呢?...标准格式为 model_,其中, 为模块_name 替换.为_后_name group_id/id 、group_id:id 代指需应用访问权限组...) ORM字段可以具有提供组列表groups属性(为逗号分隔组XML ID列表,groups='base.group_user,base.group_system')注意:groups属性格式...如果当前用户不在列出,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义,为目标字段添加groups

    10.1K20

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

    Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...Odoo 应用 我们用Odoo11product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)代码 在Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据...要找Saleable下所有子目录即可使用 作为条件 结论: 在Odoo实际使用,发现使用parent存储特性模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库添加多余字段。其实是以空间换时间。

    2.3K80

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

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

    75920

    LINUX useradd命令使用总结

    帐号建好之后,再用 passwd 设定帐号密码。而可用 userdel 删除帐号。使用 useradd 指令所建立帐号,实际上是保存在 /etc/passwd 文本文件。...    -c, --comment COMMENT         新账户 GECOS 字段    -d, --home-dir HOME_DIR       新账户主目录    -D, --defaults...     显示或更改默认 useradd 配置   -e, --expiredate EXPIRE_DATE  新账户过期日期    -f, --inactive INACTIVE       新账户密码不活动期...显示此帮助信息并推出    -k, --skel SKEL_DIR    使用此目录作为骨架目录    -K, --key KEY=VALUE           不使用 /etc/login.defs 默认...,指定用户登录时目录为/opt/odoo12,创建一个和用户同名组,并将用户加到该组,指定用户登录后shell,默认为/bin/bash。

    1.1K31
    领券