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

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

本章目标 房地产模型,自动计算总面积最佳报价 预期效果: 地产报价模型,自动计算合法日期且可被更新 我们房地产模块,我们定义了生活区花园区。...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时奔溃 表单列表视图中添加字段,正如本章目标显示第二个动画中一样。...为了实现这一点,我们定义了一个方法,其中self表示表单图中记录,并用 onchange()修饰方法,以指明它由哪个字段触发。...最终取决于用户是否修改名称描述值。 同时,需要注意是,不要循环遍历 self,因为方法表单图中触发,self总是代表单记录。...这是一个非常糟糕想法,因为以编程方式创建记录时不会自动触发onchanges;它们仅在表单图中触发。

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

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

与parent_path 字段一起,设置记录树结构索引存储,以便使用child_ofparent_of域运算符当前模型记录进行更快分层查询 _date_name= 'date' 用于默认日历视图字段...设置store=True 将在数据库存储计算及字段并启动开启字段搜索。 也可以通过设置search参数开启计算字段搜索。参数值为一个返回搜索条件方法名称 。...这意味着视图中不存在字段创建记录期间不会触发调用。...在出现字段表单图中,当修改某个给定字段时,将调用方法。包含表单存在记录上调用方法。记录字段赋值将自动返回客户端。...进行格式化 odoo.fields.One2manyodoo.fields.Many2many使用特殊“命令”格式来操作存储字段/与字段关联记录集。

13.2K10

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

在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是带有操作和菜单XML文件定义。...它们是ir.ui.view model实例。 我们estate模块,我们需要以逻辑方式组织字段列表(树)视图中,我们希望显示不仅仅是名称。 表单图中,应该字段进行分组。...表单用于创建和编辑单条件记录,其根元素为 ,由高层框架元素(groupnotebook)交互元素 (按钮字段): ...自定义搜索视图中添加用户可能过滤字段是非常常见。 搜索视图还可以包含元素,这些元素充当预定义搜索开关。...odoo,domain记录条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符三元组。

3.2K40

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

Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段页面。 你可能已经Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 我们地产应用程序,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单列表视图),但其结构更灵活。...本例,它用于将模板name设置为kanban-box :oe_kanban_global_click让可点击,以打开记录...在上面的示例字段name被添加到元素,但state它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。...您可能想看看Kanban描述各种选项。 练习--添加默认分组 使用合适属性房产分组,默认按类型分组。你必须阻止拖拽删除。

2K20

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

我们estate模块,我们需要有关房产以下信息: 购买房产客户 出售房产真实重述代理人 房产类型:房子、公寓、顶层公寓、城堡… 显示了酒店特色一系列标签:舒适、翻新… 收到报价清单 Many2one...根据类型房地产进行分类是一种标准业务需求,尤其是为了优化过滤。 一个房产可以有一个类型,但同一类型可以分配给多个房产。这得到了many2one概念支持。...模型表单,树,搜索视图 练习是前几章很好扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图....到estate.property 模型,表单列表视图 提示: 视图中,使用 widget="many2many_tags"属性正如这里展示一样。...首先,我们不需要所有模型操作或菜单。某些模型只能通过另一个模型访问。我们练习中就是这样:报价总是通过房产获得。 其次,尽管property_id字段是必需,但我们没有将其包含在视图中

4.3K40

odoo 权限管理学习总结

提示:管理员登录系统,激活开发者模式,即可在设置-用户详情页用户类型进行编辑(Settings -> Users & Companies -> Users) 以上三类用户信息都存在res_user与...-> Users & Companies -> Groups),并为用户分配不同用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便管理用户组,odoo还支持用户组...可以利用特性实现隐藏对象需求,比如针对一些常规下不需要显示特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段图中显示。...如果当前用户不在列出,他将无权访问字段: 将自动从请求图中删除受限制字段 从fields_get()响应删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中字段实现统一权限控制话,需要在模型定义,为目标字段添加groups

10K20

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

在上一篇教程我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后样子,除了从应用列表中找到模块进行升级外,我们还可以命令行Odoo 启动命令加上参数 -u todo 指定升级...deadline 这个字段值(我们需要用它当前时间进行比较),如果一个计算字段会用到多个其他字段值,这里就需要以逗号分隔,将用到字段名依次传入装饰器。...而 @api.multi 则表示方法 self 是一个记录集(多个实例集合),如果不理解,可以暂时不深究,到后面自然会知道这里实际用法。...就是每一条记录实例对象,我们用这条记录 deadline 当前时间 fields.Datetime.now() 进行比较,然后结果赋值给字段 is_expired,就是这么简单。...PS: 这里我们 deadline 进行了判断,是因为如果没有设置截止时间,又或者是新建代办事项时,这里 deadline 会是一个布尔值,是不能时间字符串进行比较

1.3K10

odoo Actions学习总结

所有Action都有两个强制属性: type 当前Action类别,决定可以使用哪些字段以及如何解释action name action名称,客户端界面显示action简短用户可读描述...binding_view_types 以逗号分隔视图类型列表,即Action需要显示上下文菜单所在视图,主要是“列表”表单”。...包含字段: res_model action触发要显示视图关联模型 views (view_id,view_type)列表。...默认值为“Unnamed”,注意:如果name值为空字符串,则默认为 Unnamed 例如,要使用列表表单视图打开客户(设置了customer标志partner): { "type": "ir.actions.act_window...每个未填充类型,追加(False,type) 应用实践举例 estate模块estate.property模型表单图中,为Action添加菜单"选取offers",如下: !

2.6K30

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

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...使用字段进行记录所属层级,当时看书时候这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录效率。...简单原理 查询分层结构记录时,一般想到方法是从根目录开始,每个子目录进行递归查询.然后才能得出具体分层结构。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...Odoo 应用 我们用Odoo11product模块作为演示 文件.看到产品目录(ProductCategory类.15行起)代码 Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据

2.2K80

如何制作实时库存报表

)首先明确要进行分析对象,然后再去找对应数据表。...通过出入库求和再加上原始库存就可以得到实时库数。 原始库存数批量数据表,出入库数据在出入库表单记录。图片step1....图片● 修改字段类型出入库字段默认识别为了字符串,无法进行求和试算,需转为数字。图片 ● 转成度量出入库数量需要进行求和统计,需转成度量。...图片● 添加筛选字段实际情况)去掉些不需要数据。比如表单中有审核功能,只有审核通过才能算数进行计算,那就得去掉待审核、审核未通过数据。...图片操作步骤:选择数据模型 -> 拖入物料编号(唯一编号)其它批量信息切记不要拖入出入库表单任何字段维度,比如记录时间、记录人等信息。因为一旦拖入维度,就会按照这些维度进行分类汇总。

1.3K30

burpsuite系列

Target(目标) 显示目标结构 1)Site Map SiteMap会在目标树形表形式显示,并且还可以查看完整求和响应。...,只需Web上一个 Socket即可进行通信,能减少不必要网络流量并降低网络延迟 4)Options 选项主要用于设置代理监听、请求和响应,拦截反应,匹配替换,ssl等,其中有八大选项:Proxy...结果会在站点地图中以树形式显示出来,提供了一个清楚并非常详细目标应用程序视图。 sitemap中选中目标host右键选中 spider this host 开始爬虫 ?...可以将目标站点地图、Burp Proxy浏览记录、Burp Instruder攻击结果,发送到Repater上,并手动调整这个请求来漏洞探测或攻击进行微调。...(2):渗透测试过程,我们经常使用Repeater进行请求与响应消息验证分析,修改请求参数、验证输入漏洞;修改请求参数、验证逻辑越权;从拦截历史记录捕获特征性请求消息进行重放。

1.4K30

burpsuite十大模块详细功能介绍【2021版】

Target(目标) 显示目标结构 1)Site Map SiteMap会在目标树形表形式显示,并且还可以查看完整求和响应。...,只需Web上一个 Socket即可进行通信,能减少不必要网络流量并降低网络延迟 4)Options 选项主要用于设置代理监听、请求和响应,拦截反应,匹配替换,ssl等,其中有八大选项:Proxy...结果会在站点地图中以树形式显示出来,提供了一个清楚并非常详细目标应用程序视图。...可以将目标站点地图、Burp Proxy浏览记录、Burp Instruder攻击结果,发送到Repater上,并手动调整这个请求来漏洞探测或攻击进行微调。...(2):渗透测试过程,我们经常使用Repeater进行请求与响应消息验证分析,修改请求参数、验证输入漏洞;修改请求参数、验证逻辑越权;从拦截历史记录捕获特征性请求消息进行重放。

2.8K20

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

数据文件内容也是模块安装或者更新时按序加载。因此,CSV文件所做所有说明XML文件都适用。...这是因为,odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单视图)大部分是通过创建和组装XML文件记录来定义。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 我们房产业务案例,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期售价不能被拷贝...查找一些合适属性 (查看字段) 来: 设置售价为只读 阻止复制可用日期售价 修改 odoo14\custom\estate\models\estate_property.py EstateProperty...预期效果可参考动画链接:https://www.odoo.com/documentation/14.0/zh_CN/_images/inactive.gif 注意,已存在记录active字段默认值为

2.8K30

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

Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...我们案例模块依赖estate account,包括房产发票创建逻辑。采用这种方式,estateaccount模块可以独立安装。当两者都安装后,链接模块将提供新功能。...不幸是,没有一种简单方法可以知道如何在Odoo创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...create 方法不接受结果集作为字段值。...为此account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2manyMany2many使用通用ORM方法描述特殊“commands”。

1.6K10

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

作为登录公司用户使用后端(web客户端)时,这不是问题:登录时可以选择数据库,然后加载自定义设置。 ...** **如果希望OdooPostgreSQL同一台计算机上执行,UNIX套接字是可以,并且没有提供主机时是默认,但是如果希望OdooPostgreSQL不同计算机上执行,则需要侦听网络接口...当Postgres部署不是本地部署/或不使用安装默认值时,可以使用数据库选项覆盖此设置。 打包安装程序将自动创建一个新用户(odoo),并将其设置为数据库用户。 数据库管理界面受管理密码设置保护。...此设置只能使用配置文件进行设置,并在执行数据库更改之前进行简单检查。应将其设置为随机生成值,以确保第三方不能使用此接口。 所有数据库操作都使用数据库选项,包括数据库管理界面。...我们还将使用监控系统来测量cpu负载,并检查它是否7到7.5之间。

6.6K21

odoo context上下文用法总结

也代表记录设置上下文 Model.with_context([context][, **overrides]) -> records[源代码] 返回附加到扩展上下文记录新版本。..._context is {'key1': True, 'key2': True} 需要注意是,上下文是记录集绑定,修改后上下文并不会在其它记录集中共享 应用场景示例 用于action,为关联视图添加默认搜索...、过滤条件 视图定义 为设置action打开tree列表视图,添加默认搜索,搜索条件为 state字段值等于True 说明:context属性值字典键值如果为模型定义字段名称,则字段名称必须以元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表),否则会出现类似错误提示...或者write方法,调用方法前修改上下文,然后方法通过self.env.context获取上下文中目标key值,进而实现目标需求 res = super(EstatePropertyTag

2K20

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

例如,我们房地产模块,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。...SQL 参考:与此主题相关文档可以查看 Models PostgreSQL文档 我们通过模型属性_sql_constraints来定义SQL约束,属性被赋值为一个包含三元组(name, sql_definition...SQL约束是确保数据一致性有效方法。然而,可能需要进行更复杂检查,这需要Python代码。在这种情况下,我们需要一个Python约束。...Python约束定义为用 constrains()修饰方法,并在记录集上调用。修饰符指定约束涉及哪些字段。当修改这些字段任何字段时,将自动计算约束。...如果不满足方法恒定式,则方法将引发异常: from odoo.exceptions import ValidationError ...

1.4K20

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

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久;它们一定时间后自动从数据库删除。...wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...,供web端使用,用于区分不同页面操作数据,'estate.property.offer_3'为供web端使用记录ID,'data'键值代表记录数据,其id键值代表记录在数据库主键id,context...可选 modelMethod 点击列表复选框时,需要调用模型方法,通过方法收集列表勾选记录数据。可选。

5.2K60

Ubuntu 16.04上安装Odoo 10

更新您软件包: sudo apt update && sudo apt upgrade 为Odoo 配置UFW防火墙 安装Odoo之前,我们将设置一些基本防火墙规则,以允许SSH连接访问Odoo...)并根据您需要进行修改。...配置日志 对于记录,Ubuntu 16.04默认使用systemdjournald。考虑到这一点,您可以通过多种方式设置Odoo 10日志。我们将在本教程中考虑两种情况。...对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069。 注意 配置日志部分中所述,Ubuntu 16.04有很多Odoo日志记录选项。...Odoo标准模块很少出现这种情况,但从第三方下载模块并不少见。如果确实遇到错误,则需要检查导致它模块新版本,然后重新安装。

3.3K42
领券