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

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

一个应用 房地产广告模块 假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。...以下为包含一些广告列表视图 form视图顶层区域概括了房产重要信息,比如name,Property Type, Postcode等等。...Goal: 该小节目标是让odoo识别我们模块,一个空壳。它将显示在Apps中 创建模块第一步:新建一个目录。...而 __manifest__.py 文件必须描述模块,且不能保持为。其必不可少字段为 name, 但通常会包含更多信息。...odoo框架会确保depends中配置依赖模块在我们模块被安装之前安装。 而且,如果这些模块某个依赖被卸载,我们模块及其它任何依赖它模块都会被卸载。

1.2K10

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

这些实例表示每个数据库可用模型,取决于该数据库安装模块。每个实例实际类都是从创建和继承相应模型Python类构建。...注解 当访问潜在多条记录记录集非关系字段时,使用mapped(),该函数返回一个列表: total_qty = sum(self.mapped('qty')) # mapped返回一个列表,形如[...使用[]表示匹配所有 fields (list) – 对象指定列表视图中存在字段列表。...返回 满足func记录集,可能为。...and extension) Odoo提供三种不同机制,以模块化方式扩展模型: 从现有模型创建模型,向副本中添加信息,但保留原始模块 扩展其他模块中定义模型,替换以前版本 将模型一些字段委派给它包含记录

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

odoo 权限管理学习总结

-> Users & Companies -> Groups),并为用户分配不同用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便管理用户组,odoo还支持对用户组...模型访问权限(Access Rights,表级别) 当模型中没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志中打印: 2022-12-14 09:01:38,994 32508...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义中,为目标字段添加groups...> odoo14\custom\estate_role\__init__.py 文件内容为 odoo14\custom\estate_role\__manifest__.py { "name"...\custom\estate\__manifest__.py data列表中已去除上述两个groups文件 重启服务并安装estate_role模块 查看效果 用户详情页面,查看用户权限,发现新增 User

10.1K20

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

一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。...类似CSV文件,XML文件也必须按约定添加到合适目录,并在 __manifest__.py中进行定义。数据文件中内容也是在模块安装或者更新时按序加载。...odoo中,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件中记录来定义。常见模式为 菜单> action > 视图。为了访问记录,用户在几个菜单级中导航。...view_mode 可获取视图。本例中为列表(树)和表格视图odoo中到处都可以找到例子,但是这个 简单action好例子。关注XML 数据文件结构,因为你在后续练习中会用到。 <?...卧室数量应该默认为2 默认可用日期应该为3个月 一些属性 在进一步进行视图设计之前,让我们回到模型定义。

2.9K30

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

QWeb简史 到目前为止,我们房地产模块界面设计相当有限。构建列表视图很简单,因为只需要字段列表。...表单视图也是如此:尽管使用了一些标记,如或,但在设计方面几乎没有什么可做。 然而,如果我们想给我们应用程序一个独特外观,就必须更进一步,能够设计视图。...我们将为我们房地产模块构建这样视图。 一个具体示例: 一个看板视图 参考: 本主题关联文档可以查看Kanban....目标: 本节结束时创建一个房产看板视图 在我们地产应用程序中,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...事实,每张卡片结构是表单元素(包括基本HTML)和QWeb混合。看板视图定义与列表视图和表单视图定义相似,只是它们根元素是kanban。

2K20

odoo Actions学习总结

binding_view_types 以逗号分隔视图类型列表,即Action需要显示上下文菜单所在视图,主要是“列表”和“表单”。...form,指定需要加载记录(否则创建一个条记录) search_view_id (可选) (id, name) 对, id 为动作需要加载指定搜索视图数据库ID。...[[False, "form"]], "res_id": a_product_id, "target": "new", } 另一个例子,在当前页面中打开estate.customer模块默认列表视图...所有这些类型都必须在生成views列表中(至少有一个False view_id) view_ids M2M(技术不是M2M:添加了一个sequence字段,可以只由一个视图类型组成,没有视图id)...中每个未填充类型,追加(False,type) 应用实践举例 在estate模块estate.property模型表单视图中,为Action添加菜单"选取offers",如下: !

2.6K30

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

模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...odoo框架提供了数据库交互工具 开始练习前,请确保estate模块已被安装,也就是说必须以installed状态出现在Apps列表中,如下 对象关系映射(Object-Relational Mapping...Selection(选择列表)定义为元组列表,查看示例 修改odoo14/custom/estate/models/estate_property.py文件 #!...有些属性是所有字段都拥有的,最常见几个属性如下: string (str, default: 字段名称) UI显示为字段label (用户可见)....required (bool, default: False) 如果为 True, 表示该字段值不能为。创建记录时必须拥有默认值或给定值。

2.3K30

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

继承(Inheritance) Odoo一个强大方面是它模块化。模块专用于业务需求,但模块也可以相互交互。这对于扩展现有模块功能非常有用。...例如,在我们房地产场景中,我们希望在常规用户视图中直接显示销售人员财产列表。...,提示如下: 模块继承(Model Inheritance) 引用: 查看主题相关文档继承和扩展 我们希望在“Settings/Users & Companies/Users”表单视图中直接显示与销售人员关联房产列表...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块方式扩展现有模型。...目标: 在用户表单视图中显示与销售人员关联avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展”视图应用于根视图之上,而不是就地修改现有视图(通过重写它们)。

2.2K20

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

模型之间关系(Relations Between Models) 一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景中,我们都需要不止一个模型。此外,模型之间链接是必要。...人们可以很容易地想象一个模型包含客户,另一个模型则包含用户列表。你可能需要参考任何现有业务模型客户或用户。...提示: 别忘记在 __init__.py导入Python模块文件,并在__manifest.py__中添加数据或者访问权限。...练习2 会用上述提到两种常用model添加买家和销售人员到estate.property模块。将它们添加到form视图中新tab页面。 销售人员默认值必须是当前用户。买家不能被复制。...例如,我们通过partner_id字段,在测试模型定义了到res.partner模型链接。

4.4K40

odoo 开发入门教程系列-安全-简介

odoo为指定用户组用户提供了一个安全数据访问机制。 更多关于安全主题详细信息可以查看 Advanced B: ACL and Record Rules。本章目标是覆盖我们模块最小安全需求。...Data Files (CSV) Odoo是一个高度数据驱动系统。虽然通过Python代码定制行为,但是模块部分值在加载时设置数据中。...加载数据方式之一是通过一个CSV文件,比如在安装base模块时加载country states列表 "id","country_id:id","name","code" state_us_1,us,...此外,所有这些文件必须在 __manifest__.py中data 列表中定义。 查看示例文件 # -*- coding: utf-8 -*- # Part of Odoo....当模型中没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志中打印: 2022-12-14 09:01:38,994 32508 WARNING odoo odoo.modules.loading

92020

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

在上一章中已经看到,odoo能够为给定模型生成默认视图。实际,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件中定义。...它们是ir.ui.view model实例。 在我们estate模块中,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示不仅仅是名称。 在表单视图中,应该对字段进行分组。...列表视图,也叫树(tree)视图, 以表格形式显示记录。 视图根元素为。...last_seen"/> 练习 -- 添加一个自定义列表视图 在合适XML文件中为estate.property model定义一个列表视图。...搜索视图列表及表单视图略有不同,因为它们不显示内容。尽管它们适用于特定模型,但它们用于过滤其他视图内容(通常是聚合视图,比如列表). 除了在使用方面的不同,他们定义方式是一样

3.2K40

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

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。...#因为使用了@api.model修饰符,self为记录集,所以不能通过self.fieldName = value 方式赋值''' res = super(DemoWizard,...可选 modelMethod 点击列表复选框时,需要调用模型方法,通过该方法收集列表勾选记录数据。可选。...this.modelName = undefined; // 定义点击列表复选框时需要访问模型 this.modelMethod = undefined; // 定义点击列表复选框时需要调用模型方法

5.2K60

odoo列表视图添加按钮实现数据文件导入

实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好表达本文主题,一些和主题无关文件、代码已略去 odoo14\custom...;limit 设置列表视图每页最大显示记录数 菜单定义 odoo14\custom\estate\views\estate_menus.xml estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...CustomListController, }), }); viewRegistry.add('estate_customer_tree', CustomListView); }); 说明:如果其它模块列表视图也需要实现类似功能...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义按钮模版名称

3.4K30

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

在这篇教程里我们将会了解到 Odoo 模型里一些其他类型字段和特殊机制,而我依然会继续带领大家一起完善我们 Todo 应用,不断地往里面添加一些功能特性,让它看起来更丰满也更实用一些。...在上一篇教程中我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后样子,除了从应用列表中找到模块进行升级外,我们还可以在命令行中给 Odoo 启动命令加上参数 -u todo 指定升级...todo 模块。...实际获取当前时间用也是这个方法,只不过 Odoo ORM 替我们封装了一层,fields.Datetime.now() 是类 Datetime 静态方法: # fields.py class...仓库地址:Odoo-Tutorial-Demo 写在最后 距离一次更新,已经过了好几个月了,这段时间除了忙公司事情,还额外在做一些别的东西,然后最近在开发一个小程序。

1.3K10

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

Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票 一个具体示例: 记账凭证(Account...这是意料之中,因为你模块依赖它。 如果你卸载Invoicing模块,你模块也会被卸载。 说明:__init__.py为 重启服务,安装模块 创建发票 是时候生成发票了。...不幸是,没有一种简单方法可以知道如何在Odoo中创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...({}) return super().set_property_sold() 当房产设置为“已售出”时,你现在应该在Invoiceing/customer/Invoices中创建一个客户发票...One2many和Many2many使用通用ORM方法中描述特殊“commands”。这种格式是一个按顺序执行三元组列表,其中每个三元组都是要对结果集执行命令。

1.6K10

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

计算字段和变更(Computed Fields And Onchanges) 模型之间关系是任何Odoo模块关键组成部分。它们对于任何业务案例建模都是必要。...本章目标 在房地产模型中,自动计算总面积和最佳报价 预期效果: 在地产报价模型中,自动计算合法日期且可被更新 在我们房地产模块中,我们定义了生活区和花园区。...依赖(Dependencies) 计算字段值通常取决于计算记录中其他字段值。ORM期望开发人员使用修饰符depends()指定计算方法依赖项。...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时奔溃 在表单和列表视图中添加字段,正如本章目标中显示第二个动画中一样。...你对self所做任何更改都将反映在表单: from odoo import api, fields, models class TestOnchange(models.Model): _name

3.1K30

Odoo开发指北 01 初识Odoo

继承开发 Odoo提供了大量现成模块给我们使用,但是某些情况下,我们需要制定符合自己需求功能模块Odoo开发一条黄金准则是——不要修改现有的模块,以免改动后代码与原有模块产生混淆。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它基础上进行修改、扩展,生成自己模块。...然后使用自己模块:把自己模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...Odoo 脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型类...构建动作对象,关联某个具体菜单项响应。 构建视图对象:主要是list、tree、form、search视图

2.3K30

Odoo系统介绍和对比

,支持定制开发 image.png image.png 4.客户列表 客户列表采用卡片式展示 image.png 5.创建商机 image.png 6.商机各个阶段(支持拖动) image.png...Odoo 微信模块,提供了对微信公众号和企业号(企业微信)接入与管理,实现了微信消息与Odoo聊天无缝对接: 用户、组同步管理 用户消息对接chat 一对一实时聊天 高效便捷推送群组通知消息...全功能自定义菜单配置 各种返回消息类型支持 灵活配置自动回复及匹配方式 支持 Odoo 8.0 到 11.0 12.管道(漏斗模型) 用面板实现类似漏斗模型 image.png 13.库存管理....Odoo技术架构 该架构主要包括几部分: 1、ORM模块,映射数据库对象      2、工作流引擎 3、报表模块                                 4、RPC和WebService...MongoDB处于竞争关系 image.png image.png 23.Postgres性能指标(官方材料,有夸张成分) 1、性能指标宣传有夸张成分,不过性能表现抢眼,超过MongoDB 2、分布式集群MongoDB

3.8K20

在Ubuntu 16.04安装Odoo 10

注意 如果您在同一个腾讯云CVM服务器运行多个Odoo版本,则可能需要为每个实例使用不同用户和目录。...或者,我们可以包含一个行,指定用于连接Odoo前端端口:xmlrpc_port = 8069。只有在计划在同一服务器运行多个Odoo实例(或版本)时才有意义。...更新Odoo 在更新Odoo系统之前,您应该检查一切是否按预期工作,尤其是第三方模块。最安全方法是使用测试环境,这只是一个单独Odoo安装。...> 在此阶段,您可能会遇到模块中不兼容更改所产生错误。...Odoo标准模块很少出现这种情况,但从第三方下载模块并不少见。如果确实遇到错误,则需要检查导致它模块新版本,然后重新安装。

3.3K42
领券