Odoo
Odoo资料及技术分享
星辉信息科技
这个作者很懒,什么都没留下…
展开
-
星辉ODOO手册第二章 本书的目标、适用读者和注意事项
本书的目标本手册的重点是如何通过这Odoo这个工具来提高管理效率。你可以看到哪些管理方法是有用的、可行的,然后通过Odoo这个工具来实现它。本书的适用读者Odoo 应用手册的适用用户:1)希望在他人和参考资料招导下能独立实施Odoo。2)实施侧重点在于充分利用Odoo现有功能,满足本单位或部门的一般需求(尽悬避开二次开发)。3)本书也适用于在公司内拥有推行ERP的影响力,有信心改善公司管理绩效的主管和经理。因为我们要分析的功能具有广泛性和灵活性,因而本书适用于大、中、小、微各类企业。初原创 2020-11-25 00:07:19 · 324 阅读 · 1 评论 -
星辉ODOO手册-第一章开源ERP系统Odoo简介
信息系统在提高企业竞争力方而发挥了日益显着的作用,信息系统不仅作为处理复性工作的工具,还是一个用来分享各种资料、策略和讯息的公共平台,它用于指导和推动一个公司的日常活动,提高多个部门,如采购、销售、仓库、会计和其他所有人员的工作效率.但是传统ERP有着价格昂贵,实施成本高,二次开发成本高的问题。本文重点介绍来自国际一流的开源ERP系统Odoo,他主要有以下特点:属于开源软件,开发和推广费用低开源软件通过重复使用开源软件库大幅降低开发成本,通过软件的自由发布消除了中间环节的昂贵销售费用和市场费用。原创 2020-11-25 00:03:25 · 610 阅读 · 0 评论 -
Odoo14如何开启debug模式?
Odoo14中,已经无法在页面设置中激活开发者模式,本文介绍如何在odoo14中开启debug模式在Odoo14中单纯使用?debug已无法调出调试菜单,需使用完整的?debug=1或?debug=assets;比如链接地址为http://localhost:8069/,则开启debug模式的地址为:http://localhost:8069/web?debug=1原“Activate the developer mode”按钮要求至少安装一个应用后再点击 Settings 菜单下拉至底部:原创 2020-11-25 00:00:48 · 1173 阅读 · 0 评论 -
ODOO开发-Pycharm开启debug模式
odoo12与odoo13在PyCharm上能运行后,如何进行单步调试呢?关键的一步是在源码中找到resetlocale()这个方法,加一条语句:ln = ln[0:ln.index(’.’)]代码如下:def resetlocale():# locale.resetlocale is bugged with some locales.for ln in get_locales():try:ln = ln[0:ln.index(’.’)]return locale.setlocale(loca原创 2020-11-24 23:52:25 · 454 阅读 · 0 评论 -
pycharm开启debug模式报错汇总
最近在使用pycharm IDE开发odoo的时候,开启debug模式遇到了不少坑,现在汇总记录下,方便大家以后规避process 5924 is connecting设置有问题,需要点击setting->python Debugger,该页面有一个pyQt compatiblede 对应于auto,只要把前面的√去掉就好了process finished with exit code 139 (interrupted by signal 11 sigsegv)作者当时也查找了很久关于原创 2020-11-24 23:50:14 · 1038 阅读 · 0 评论 -
星辉Odoo模型开发教程4-常用字段属性
字段还有一些其它属性供我们定义其行为。以下是常用的属性,通常都作为关键字参数:⚫ string 是字段的默认标签,在用户界面中使用。除 Selection 和关联字段外,它都是第一个位置参数,所以大多数情况下它用作关键字参数。如未传入,将由字段名自动生成。⚫ default 设置字段默认值。可以是具体值(如 active 字段中的 default=True),或是可调用引用,有名函数或匿名函数均可。⚫ help 提供 UI 中鼠标悬停字段向用户显示的提示文本。⚫ readonly=True 会使用户原创 2020-11-24 23:47:53 · 197 阅读 · 0 评论 -
星辉Odoo模型开发教程3-创建字段
创建新模型后的第一步是添加字段。 Odoo 支持我们能想到的所有基本数据类型,如文本字符串、整型、浮点型、布尔型、日期、日期时间以及图片或二进制数据。下面就来看看 Odoo 中一些可用的字段类型吧。基本字段类型我们将为图书模型添加几种可用的字段类型,编辑 library_app/models/library_book.py 文件后 Book 类会长这样:class Book(models.Model):…String fieldsname = fields.Char(‘Title’, requ原创 2020-11-24 23:42:00 · 184 阅读 · 0 评论 -
星辉Odoo模型开发教程2-模型创建第二讲
模型和 Python 类Odoo 模型以 Python 类的形式展现,在前面的代码中,有一个继承了 models.Model 类的Python 类: Book,创建了新 Odoo 模型: library.book。 Odoo 的模型保存在中央注册表(central registry)中,可通过 env 环境对象(老 API 中称为 pool)获取。 它是一个数据库保存所有可用模型类引用的字典,其中的词条可通过模型名引用 。具体来说,模型方法中的代码可使用self.env[‘library.book’原创 2020-06-11 22:01:15 · 629 阅读 · 0 评论 -
星辉科技Odoo模型开发教程2-模型创建第一讲
创建模型模型是 Odoo 框架的核心,它们描述应用的数据结构,是应用服务和数据库存储之间的桥梁。可围绕模型实现业务逻辑来为应用添加功能,用户界面也建立在模型之上。下面我们将学习模型的通用属性,用于影响行为,以及几种模型类型:普通(regular)、临时(transient)和抽象(abstract)类型。模型属性模型类可以使用控制其部分行为的额外属性,以下是最常用的属性:⚫ _name 是我们创建的 Odoo 模型的内部标识符,在创建新模型时为必填。⚫ _description 是对用户友原创 2020-06-11 22:00:33 · 225 阅读 · 0 评论 -
星辉信息科技Odoo模型开发教程1-深入学习模型层
在本系列文章第三章创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件。本文及接下来的一篇我们将深入到组成应用的每一层:模型层、视图层和业务逻辑层。本文中我们将深入学习模型层,以及学习如何使用模型来设计应用所需的数据结构。我们会探索模型和字段的各项作用,包括定义模型关系、添加计算字段、创建数据约束。本文的主要内容有:⚫ 学习项目 – 优化图书馆应用⚫ 创建模型⚫ 创建字段⚫ 模型间的关系⚫ 计算字段⚫ 模型约束⚫ 了解 Odoo 的 base 模型开发准备本文原创 2020-06-09 11:51:58 · 259 阅读 · 0 评论 -
星辉科技Odoo模块开发教程11-导入导出数据其他操作
XML 文件中的其它操作截至目前我们了解了如何使用 XML 文件添加和更新数据。但也可以通过 XML 文件删除数据以及执行指定模型方法。对更复杂的数据场景会非常有用删除记录我们可以使用元素删除数据记录,使用 ID 或搜索域来定位要删除的记录。例如,使用搜索域查找记录并删除:<deletemodel="res.partner"search="[('id','=',ref('library_app.res_partner_daniel'))]"/>如果知道要删除记录的具体原创 2020-06-09 11:51:11 · 310 阅读 · 0 评论 -
Odoo模块开发教程10-导入导出数据常用模型的简写
如果回到第三章创建第一个 Odoo 应用,我们在 XML 中还发现之外的元素,如和。这些是常用模型的简写方式,是比常用的更为简练的符号。它们用于向 base 模型加载数据、组成用户界面,在第十章后台视图会作更详细的探讨。为便于查看,以下是可用的简写元素以及加载数据的对应模型:⚫ 是窗口操作模型 ir.actions.act_window⚫ 是菜单项模型 ir.ui.menu⚫ 是报表操作模型 ir.actions.report.xml⚫ 是存储在 ir.ui.view 模型中的 QWeb 模板原创 2020-06-09 11:50:19 · 276 阅读 · 0 评论 -
星辉科技Odoo模块开发教程8-导入导出数据定义记录
在 XML 中定义记录在 XML 文件中,每个元素有两个基本属性: id 和 model,并包含为对应列设置的值。 id 属性对应记录外部标识符, model 对应目标模型。 元素有几种分配值的方法,下面一起来看看直接为字段设置值元素的 name 属性标识要写入的字段。写入的值是元素内容: 字段开、闭标签之间的文本。对于 date 和 datetime,带有返回 date 或 datetime 对象表达式的 eval 属性可进行设置。 返回的” YYYY-mm-dd”和” YYYY-mm-d原创 2020-06-09 11:49:15 · 260 阅读 · 0 评论 -
星辉信息科技Odoo模块开发教程7-noupdate 数据属性配置
noupdate 数据属性升级模块时,会重新加载数据并重写模块记录。要谨记这可能意味着在升级模块时会重写任何对模块数据的手动更改。“ 小贴士: 值得注意的是,手动对视图所做的自定义修改会在下一次模块升级时丢失。避免这一问题正确的方法是创建继承视图来引入要做的修改。 ”这种重写行为是默认的,但可以修改有些数据仅在安装时导入,后续模块更新时则予以忽略,这正是通过或元素中的 noupdate=” 1″来实现的。这对于需初始化配置且预期需自定义的数据来说非常有用,因为这些手动修改在模块更新时是安全的。例如原创 2020-06-09 11:48:16 · 595 阅读 · 0 评论 -
Odoo模块开发教程6-导入导出 CSV 数据文件第三讲
添加模块数据模块使用数据文件来加载默认数据、演示数据、用户界面定义和其它需存入数据库的配置。可以选择使用 CSV 或 XML 文件。“ 注意: Odoo 12 的修改Odoo 11 及之前版本支持 YAML 格式文件,但在 Odoo 12 移除了相关支持。相关使用示例可参考 Odoo 11 官方模块 l10n_be,更多 YAML 格式相关信息,可访问 http://yaml.org/。 ”模块所使用的 CSV 和我们前述使用导入功能时用的文件是一样的。在模块中使用这些文件时,文件名须与要导入数据的原创 2020-06-11 21:55:50 · 604 阅读 · 0 评论 -
星辉Odoo模块开发教程6-导入导出 CSV 数据文件第二讲
导入数据首先应确认开启了导入功能,默认是开启的。如果没有,进入 Settings > General Settings,在 Users 版块下勾选 Import & Export 选项即可。启用该选项后,列表视图上方 Create 按钮旁就会显示一个 Import 按钮。“ 注意: Import & Export 设置安装 base_import 模块,该模块用于提供这一功能。 ”下面我们尝试批量编辑 Contact 或 Partner 数据。使用电子表单或文本编辑器打开 CSV原创 2020-06-09 11:45:38 · 417 阅读 · 0 评论 -
星辉Odoo模块开发教程6-导入导出 CSV 数据文件第一讲
导入导出 CSV 数据文件导出数据文件并查看文件结构的简易方式是使用内置的导出功能。通过生成 CSV 文件,我们可以了解手动导入系统所需的格式,或编辑该文件批量导入,甚至是使用它生成我们插件模块的演示数据。下面我们一起来学习从 Odoo 用户界面导入和导出的基础知识。导出数据数据导出是表单视图中的标准功能。要使用该功能, 需要勾选左侧的复选框来选择需导出的行,然后在上方的 Action 菜单中点击 Export 选项。首先我们要在图书应用中添加一些带有出版商和作者的图书。下例中我使用此前添加的原创 2020-06-09 11:44:10 · 282 阅读 · 0 评论 -
星辉Odoo模块开发教程5-导入、导出以及模块数据第一讲
模块继承之修改视图和数据总结大多数 Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录。模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段。正是因为这个原因, Odoo 模块的一个重要部分是在文件中放入数据以在插件安装时将其载入数据库。模块可以包含初始数据和演示数据,可通过数据文件将它们加入模块。此外,了解 Odoo 数据的格式对于在项目实施上下文中导入导出业务数据也非常重要。本文的主要内容有:⚫ 理解外部标识符的概念⚫ 导入导出原创 2020-06-09 11:42:49 · 354 阅读 · 0 评论 -
星辉Odoo模块开发教程4-模块继承之修改视图和数据第六讲
继承 Python 方法Python 方法中编写的业务逻辑也可以被继承。 Odoo 借用了 Python 已有的父类行为的对象继承机制。作为一个实际的例子,我们将继承图书 ISBN 验证逻辑。在图书应用中仅能验证 13 位的ISBN,但老一些的图书可能只有 10 位数的 ISBN。我们将继承_check_isbn()方法来完成这种情况的验证。在 library_member/models/library_book.py 文件中添加如下方法:from odoo import api, fields,原创 2020-06-09 11:40:51 · 197 阅读 · 0 评论 -
Odoo模块开发教程3-模块继承之修改视图和数据第五讲
使用 mixin 类继承模型原型继承主要用于支持 mixin 类。 mixin 是基于 models.Abstract 的抽象的模型(而不是models.Model),它在数据库中没有实际的体现,而是提供功能供其它模型复用(混合 mixed in)。 Odoo 插件提供多种 mixin,最常的两种由 Discuss 应用(mail 模块)提供:⚫ mail.thread 提供在许多文档表单下方或右侧的消息面板功能,以及消息和通知相关逻辑。这在我们自己的模型中将经常会添加,下面就来一起学习下。⚫原创 2020-05-24 21:42:24 · 539 阅读 · 0 评论 -
Odoo模块开发教程3-模块继承之修改视图和数据第四讲
使用代理继承内嵌模型使用代理继承无需复制数据即可在数据库中复用数据结构,这通过将一个模型嵌入另一个来实现。 UML 中这种称作组合(composition)关系:父类无需子类即可存在,而子类必须要有父类才能存在。比如,对于内核 User 模型,每条记录包含一条 Partner 记录,因此包含 Partner 中的所有字段以及 User 自身的一些字段。在图书项目中,我们要添加一个图书会员模型。会员有会员卡并通过会员卡借阅读书。我们要记录卡号,还要存储 email 和地址这类个人信息。 Partner原创 2020-05-24 21:41:26 · 501 阅读 · 0 评论 -
Odoo模块开发教程3-模块继承之修改视图和数据第三讲
其它模型继承机制前面我们介绍了模型的基本继承,在官方文档中称为经典继承。这是最常用的继承方式,最容易想到的就是 in-place 继承。获取模型并对其继承。添加的新功能会自动添加到已有模型中,而不会创建新模型。可以为_inherit 属性传入多个值来继承多个父模型。大多数情况下这通过 mixin 类完成,mixin 类是实现可复用的通用功能。也可以像普通模型那样独立使用,像是一个功能容器,可随时加到其它模型中。如在使用_inherit 属性的同时还使用了与父模型不同的_name 属性,此时会复用所继原创 2020-05-24 21:40:26 · 308 阅读 · 0 评论 -
Odoo模块开发教程2-模块继承之原模型继承
原模型继承第一步我们来为 Book 模型添加 is_available 布尔型字段。这里使用经典的 in-place 模型继承。该字段值可通过图书借出和归还记录自动计算,但现在我们先使用普通字段。要继承已有模型,需要在 Python 类中添加一个_inherit 属性来标明所继承的模型。新类继承父 Odoo 模型的所有功能,仅需在其中声明要做的修改。在任何地方使用该模型修改都可用,可以认为这类继承是对已有模型的引用并在原处做了一些修改为模型添加字段通过 Python 类来新建模型,继承模型同样是原创 2020-05-24 21:37:35 · 347 阅读 · 0 评论 -
Odoo模块开发教程1-模块继承第一讲
Odoo 的一个强大功能是无需直接修改底层对象就可以添加功能。这是通过其继承机制来实现的,采取在已有对象之上修改层来完成。这种修改可以在不同层上进行-模型层、视图层和业务逻辑层。我们创建新的模块来做出所需修改而无需在原有模块中直接修改。上一篇文章中我们从零开始创建了一个新应用,本文中我们学习如何通过继承已有的核心应用或第三方模块来创建新的模块。实现以上本文将主要涵盖:⚫ 原模型扩展,为已有模型添加功能⚫ 修改数据记录来继承视图,添加功能或修改数据来修改其它模块创建的数据记录⚫ 其它模型继承机制,如代原创 2020-05-24 21:36:29 · 322 阅读 · 0 评论 -
Odoo安装教程14-创建新的插件模块之网页和控制器
网页和控制器Odoo 还提供了一个 web 开发框架,可用于开发与后台应用深度集成的功能。第一步我们来创建一个显示有效图书列表的简单网页。在请求 http:///library/books 页面时会进行响应,所以/library/books 是用于实施的 URL。这里我们简短地了解下 Odoo 网页开发,这一话题在第十三章创建网站前端功能中会深入探讨。Web 控制器是负责渲染网页的组件。控制器是 http.Controller 中定义的方法,与 URL 链接(endpoint)绑定。 访问 URL 时原创 2020-05-24 21:35:10 · 1074 阅读 · 0 评论 -
Odoo安装教程13-创建新的插件模块之业务逻辑层
业务逻辑层业务逻辑层编写应用的业务规则,如验证和自动计算。现在我们来为按钮添加逻辑,通过在模型Python 类中编写方法来实现。添加业务逻辑上文中我们在 Book 表单中添加了一个按钮,用于检查 ISBN 是否有效。现代 ISBN 包含 13位数字,最后一位是由前 12 位计算所得的检查位。我们无需深入到算法的细节,这里是一个实现验证的 Python 方法。应当在 class Book(…)中进行添加:@api.multidef_check_isbn(self):self.ensur.原创 2020-05-24 21:33:12 · 345 阅读 · 0 评论 -
Odoo安装教程12-创建新的插件模块之设置视图层第三讲
完整表单视图此时 library.book 的表单视图代码如下:<formstring="Book"><header><buttonname="button_check_isbn"type="object"string="Check ISBN"/></header><sheet><groupname="group_top"><groupname="group_left"><field...原创 2020-05-24 21:32:03 · 226 阅读 · 0 评论 -
Odoo安装教程12-创建新的插件模块之设置视图层第二讲
业务文件表单视图上面的部分创建了一个基础表单视图,还可以做一些改进。对于文件模型, Odoo 有一个模拟纸张的展示样式,表单包含两个元素:来包含操作按钮和来包含数据字段。可以修改上一部分的基础定义为:<formstring="Book"><header><!--此处添加按钮--></header><sheet><group><fieldname="name"/>...</gr...原创 2020-05-24 21:29:41 · 205 阅读 · 0 评论 -
Odoo安装教程12-创建新的插件模块之设置视图层第一讲
设置访问权限在加载服务时,你可能会注意到输出日志中有一条警告信息:The model library.book has no access rules, consider adding one.提示消息已经很明确了,我们的新模型没有访问规则, 所以任何人都可使用。我们已为应用添加了安全组,现在就为模块授权。“ 小贴士: 在 Odoo 12 以前, admin 可自动访问所有数据模型,它是一个不受权限控制的超级用户。在 Odoo 12 中则不再如此,需要在新模型中设置 ACL 才对 admin 可见原创 2020-05-24 21:26:45 · 404 阅读 · 0 评论 -
Odoo安装教程11-创建新的插件模块之设置访问权限
设置访问权限在加载服务时,你可能会注意到输出日志中有一条警告信息:The model library.book has no access rules, consider adding one.提示消息已经很明确了,我们的新模型没有访问规则, 所以任何人都可使用。我们已为应用添加了安全组,现在就为模块授权。“ 小贴士: 在 Odoo 12 以前, admin 可自动访问所有数据模型,它是一个不受权限控制的超级用户。在 Odoo 12 中则不再如此,需要在新模型中设置 ACL 才对 admin 可见原创 2020-05-11 11:28:58 · 405 阅读 · 0 评论 -
Odoo安装教程10-创建新的插件模块第九讲
模型层既然 Odoo 已经能识别我们的新模块了,下面就添加一个简单的模型。模型描述业务对象,如商机、销售订单或合作伙伴(用户、供应商等)。模型中有一系列属性,也可定义一些特定业务逻辑。模型通过 Odoo 模板类派生的 Python 类来实现。它直接与数据库对象对应, Odoo 在安装或升级模块时会自动进行处理。框架中负责这部分的是对象关系映射(ORM -Object Relational Mapping)。我们的模块是一个图书管理应用,第一个功能就是管理图书目录,目前这是我们唯一需要实现的模型创原创 2020-05-11 11:27:34 · 216 阅读 · 0 评论 -
Odoo安装教程9-创建新的插件模块第八讲
测试业务逻辑现在我们应为业务逻辑添加测试了,理想情况下每行代码都应有一个测试用例。tests/test_book.py 文件 test_create() 方法再加几行代码:def test_check_isbn(self):"Check valid ISBN"self.assertTrue(self.book_ode._check_isbn)推荐为每个需检查的操作添加一个测试用例,本条测试与上一条相似,先创建一本新书。因为各个测试用例是相互独立的,用例创建或修改的数据会在测试结束时回滚。然后在创原创 2020-05-11 11:19:34 · 191 阅读 · 0 评论 -
Odoo安装教程8-创建新的插件模块第七讲
添加自动化测试编程的最佳实践包含代码的自动化测试,对于像 Python 这样的动态语言尤为重要,因为它没有编译这一步,只有在解释器实际运行代码时才会报语法错误。好的编辑器可以让我们提前发现问题,但无法像自动化测试这样帮助我们确定代码如预期般运行。“ 注意: Odoo 12 的修改在老版本中, Odoo 使用 YAML 文件来进行测试,但 Odoo 12 中移除了对 YAML 文件的支持,所以不能再使用该格式文件。 ”测试驱动开发(TDD -Test-driven Development) 方法让我原创 2020-05-11 11:16:46 · 220 阅读 · 0 评论 -
Odoo安装教程7-创建新的插件模块第六讲
添加权限组普通用户在使用功能前需获得相应的权限。 Odoo 中使用安全组来实现,权限授予组,组中分配用户。 Odoo 应用通常有两个组:针对普通用户的用户组,包含额外应用配置权限的管理员组。下面我们就来添加这两个安全组。权限安全相关的文件通常放在模块下/security 子目录中,这里我们创建 security/library_security.xml 文件来进行权限定义。安全组使用分类来更好地组织关联应用。所以第一步我们在 ir.module.category 模型中创建针对图书应用的分类:&l原创 2020-05-11 11:15:26 · 295 阅读 · 0 评论 -
Odoo安装教程6-创建新的插件模块第五讲
创建新的插件模块一些 Odoo 模块创建新应用,而另一些则对已有应用添加功能或作出修改。虽然两者的技术组件基本相同,但应用会被预期包含一些特征性元素。我们创建的是一个图书应用,所以应包含这些元素,它们是:⚫ 图标:用于在应用列表中展示⚫ 顶级菜单项:其下放置所有的应用菜单项⚫ 应用安全组: 通过权限访问仅对指定用户开放添加图标(icon),仅需在模块目录下 static/description/子文件夹中放置 icon.png 文件,前面已经介绍过了。下面我们来添加应用顶级菜单。添加应用顶级原创 2020-05-11 11:12:50 · 184 阅读 · 0 评论 -
Odoo安装教程5-创建新的插件模块第四讲
添加图标开发模块是一个不断迭代的过程,我们会需要应用更新所修改代码并在 Odoo 中可见。可以在后台界面 Apps 中搜索对应模块并点击 Upgrade 按钮。但如果修改的是 Python 代码,点击升级不会生效,需要先重启服务方可生效。这是因为 Odoo 仅会加载一次 Python 代码,此后的修改就要求进行重启才会生效。有时,模块中既修改了数据文件又修改了 Python 代码,那么就需要同时进行如上两种操作。这是 Odoo 开发者的常见困惑。幸好还有更好的方式, 最保险的方式是重启 Odoo 实例原创 2020-05-11 10:28:44 · 199 阅读 · 0 评论 -
Odoo安装教程4-创建新的插件模块第三讲
添加图标模块可选择添加图标,这对于作为 app 的模块尤其重要,因为在应用菜单中一般都应有图标。要添加图标, 需要在模块中添加 static/description/icon.png 文件。为简化操作,我们可以复用 accounting 应用的图标,把odoo/addons/account/static/description/icon.png 文件拷贝至 customaddons/library_app/static/description 目录。可通过如下命令完成:cd ~/odoo-de原创 2020-05-11 10:25:08 · 352 阅读 · 0 评论 -
Odoo安装教程3-创建新的插件模块第二讲
创建模块目录和声明文件现在就准备好了~/odoo-dev/custom-addons 目录,已正确添加至 addons 路径,Odoo 也就可以找到这里的模块。Odoo 自带一个 scaffold 命令可自动创建新模块目录,其中会包含基础结构。此处并不会使用该命令,而是手动创建。通过以下命令可以了解 scaffold 用法:~/odoo-dev/odoo/odoo-bin scaffold --helpOdoo 模块目录需包含一个__manifest__.py 描述性文件,同时还需要是可导入的包,原创 2020-05-11 10:23:44 · 406 阅读 · 0 评论 -
Odoo安装教程2-创建新的插件模块第一讲
一个插件模块是包含实现一些 Odoo 功能的文件夹,可以添加新功能或修改已有的功能。插件目录必须含有一个声明或描述文件__manifest__.py,以及其它模块文件。一部分模块插件在 Odoo 中以 app 的形式出现,通常都会带有顶级菜单项。它们为 CRM 或HR 这样的功能区添加核心元素,因此在 Odoo 应用菜单中会高亮显示。另外还有一些非应用模块插件一般为这些应用添加功能。如果你的模块为 Odoo 添加新的或重要的功能,一般应该是app。而如果模块仅修改应用的功能,那么就是一个普通的插件模块。要原创 2020-05-11 10:19:32 · 674 阅读 · 0 评论 -
Odoo安装教程1-创建第一个 Odoo 应用
Odoo 开发通常都需要创建自己的插件模块。本文中我们将通过创建第一个应用来一步步学习如何在 Odoo 中开启和安装这个插件。我们将从基础的开发流学起,即创建和安装新插件,然后在开发迭代中更新代码来进行升级。Odoo 采用类 MVC(Model-View-Controller)的结构,我们将深入到各层来实施一个图书应用。本文主要内容有:⚫ 创建一个新的模块,用来实施相关功能⚫ 添加应用的特...原创 2020-04-25 11:01:54 · 715 阅读 · 0 评论