![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
XODOO教学
文章平均质量分 65
odoo实施
昆山一百计算机有限公司-中国专业的Odoo开发实施团队!
展开
-
xodoo 万能导入工具xodoo_import
这里增加了小部件开发,比如 手机号码 我们在|后在增加了mobile 这样导入的手机号码自动去最后一位0。xodoo_import 就是这样的工具,系统导入方式有两个,一种文件小于256mb文件,可以在线导入。系统最大特色就是使用了缓存增加速度,查询过创建过的对象值缓存起来,方便下次调用。如果大于系统上传的限制,最好使用FTP把文件上传上去再进行导入。如果字段类型是selection 还可以把文本与值进行转换。这时就需要一个不需要编程就能导入各式数据的工具。还有短日期与长日期是5位数值时自动转换。原创 2024-07-11 22:03:31 · 124 阅读 · 0 评论 -
通过pyo3用rust为xodoo写扩展提升性能100倍速
【代码】通过pyo3用rust为xodoo写扩展提升性能100倍速。原创 2024-07-09 22:56:03 · 760 阅读 · 0 评论 -
odoo17 文本框 char 增加onClick 事件
创作需求,如果我们要建设一个大型的中台项目,希望每一个应用都能独立,比如帐号,客户,供应商,产品等,这时我们在创建新应用时就不必为以上的数据再做同步操作,我们基于char来扩展一个查询界面,返回值。通过上下文我们可以调用任何的远程数据。原创 2024-07-04 23:17:39 · 118 阅读 · 0 评论 -
odoo17 JS框架3——OWL组件
但是,如果您考虑一下,就会发现一个问题:实际的 html 元素 创建组件时,组件不存在。因此,返回一个包含(for element)键的对象,该键仅在 组件已挂载。粗略地说,一个组件被创建,然后更新(可能很多次),然后被销毁。实现以检查是否按下了回车键 (),并在其中 情况下,创建一个新的待办事项,以输入的当前内容作为描述,并清除 输入所有内容。在 的情况下,它会生成一个链接到当前组件的代理对象。在任务的 id 之前添加具有属性的输入,该输入必须 检查状态是否为 true。确保待办事项具有唯一的 ID。原创 2024-07-04 22:50:52 · 677 阅读 · 0 评论 -
xodoo两张表列表显示
原列表增加define_tree_product_product。在多数情况下我们希望在搜索列表中单头与单身都在列表上可以查看到。本系统的开发控件 支持列表与明细表列不相同。原创 2024-07-04 19:22:44 · 236 阅读 · 0 评论 -
Xodoo17 列表与表单弹出窗口 iframe
odoo17 弹出自定义 窗口 前台iframe原创 2024-07-04 19:10:43 · 217 阅读 · 0 评论 -
odoo外部ID
xmlid的含义是指用户定义在xml记录中的id,即我们在xml文件中经常写到的id。它的作用是什么?我们知道,每个模块在安装的时候会自动加载预先定义好的基础数据,这部分数据中包括了,内置的权限组、记录规则、视图和一些组织数据。因为我们的模块设计的原则就是要能够独立安装、不依赖于特定的数据库。那么odoo中的某些业务逻辑需要获取这些预定义数据在数据库中的记录ID,这就是XMLID的作用,提供一种编程意义上的数据库id映射。原创 2024-05-31 16:35:33 · 151 阅读 · 0 评论 -
odoo序列
是odoo中用来获取单据序号的对象,技术模型为ir.sequence。序列的使用在odoo中是非常广泛的,典型的使用场景各个单据的单号。原创 2024-05-31 16:34:51 · 251 阅读 · 0 评论 -
odoo菜单
菜单是odoo种最常见的组件之一,其基本的作用就是作为前端和动作(action)的纽带。菜单的定义,我们在第一部分已经接触到,并且写了很多的示例,相信读者已经熟练的学会了定义一个菜单并绑定相应的动作。本章,我们将着重认识菜单的本质是什么,以及它所拥有的哪些高级属性,以及它的高级应用。原创 2024-05-31 16:34:13 · 244 阅读 · 0 评论 -
odoo过滤
', '=like', '=ilike', 'like', 'not like', 'ilike', 'not ilike', 'in', 'not in', 'child_of' 用于domain内部的条件判定。通常我们给菜单设置过滤,是通过给菜单绑定的动作设置domain来完成的,这里的domain写法跟其他的domain写法并无不同。如果有计算的需求,这里的建议是新建一个compute的字段,将计算后的值赋给新字段。原创 2024-05-31 16:32:07 · 456 阅读 · 0 评论 -
odoo消息总线
从方法定义上面,我们可以看到,message_post方法将在已经存在的消息线程中将body中的内容发送给目标用户,并返回消息的id.原创 2024-05-31 16:31:10 · 165 阅读 · 0 评论 -
关于odoo的控制器介绍及定义举例
控制器通常用于定义Web界面的行为,例如处理表单提交、渲染页面、执行特定的操作等。控制器通常与路由相关联,用于将特定的URL映射到相应的处理方法。通过这样的方式,我们可以定义控制器来处理不同类型的HTTP请求,并执行相应的操作。在实际应用中,控制器通常与Odoo的Web界面相关联,用于实现特定的用户交互和业务逻辑。处理方法通常接收HTTP请求参数,并生成相应的HTTP响应。您可以在控制器类中定义各种处理方法,用于处理不同类型的HTTP请求。:控制器通常与路由相关联,用于将特定的URL映射到相应的处理方法。原创 2024-05-30 14:51:49 · 245 阅读 · 0 评论 -
关于odoo的模型介绍及举例
在模型中,您可以定义各种类型的字段,例如字符型(Char)、整数型(Integer)、浮点型(Float)、日期型(Date)等。通过定义模型,可以创建各种不同类型的业务对象,例如产品、合作伙伴、销售订单等,并且可以根据具体的业务需求定义字段、关系和方法,以满足特定的业务逻辑和用户界面需求。:要创建一个新的模型,您需要定义一个Python类,并使用Odoo的模型类作为基类。:模型通常与用户界面视图相关联,您可以定义不同类型的视图,例如表格视图、表单视图、搜索视图等,用于展示和操作模型中的数据。原创 2024-05-30 14:49:03 · 254 阅读 · 0 评论 -
关于odoo的继承使用及定义举例
在Odoo中,继承是一种重要的开发技术,允许您在不修改原始模型的情况下扩展或修改现有模型。您可以使用继承来添加新字段、修改现有字段、添加新方法或覆盖现有方法。的模型,代表了系统中的合作伙伴(partner)。现在我们想要在这个模型中添加一个新的字段,用于存储合作伙伴的生日信息。在这个示例中,我们创建了一个新的Python类。的新字段,用于存储合作伙伴的生日信息。通过这样的方式,我们可以在不修改原始。模型的情况下,扩展它并添加新的字段。属性指定了要继承的原始模型。然后,我们添加了一个名为。原创 2024-05-30 14:46:46 · 187 阅读 · 0 评论 -
odoo报错TypeError: unsupported operand type(s) for +: ‘NoneType‘ and ‘str‘(已解决)
函数中,看看是否有未定义的变量或者NoneType的值导致了这个错误。题主的情况是自己在处理另一个模块,这个模块莫名其妙受到影响,最后发现是odoo的ir_ui_view文件出现问题。可以看到运行出现上述错误,这个错误的出现是由于视图文件中的一些问题导致的。你可以检查视图文件的内容,特别是在。如果为None,可以将其替换为空字符串。进行了None检查。因此,可能的错误原因并不在这里。根据错误信息,问题可能出现在。可能为None,导致无法与字符串。为了解决这个问题,可以在连接。原创 2024-05-28 17:34:45 · 884 阅读 · 0 评论 -
odoo的ORM框架介绍(下)
前面我们知道,fields_view_get是被load_views调用的,同样的,fields_get也是被load_views调用的。比如,我们都知道,销售订单(sale.order)对象有一个明细的one2many的字段order_line,假设我想获取order_line中单价大于1的记录的prouduct_id的列表。fields_get方法默认返回所有的字段和属性, 但这里有个隐藏的因素, 如果方法的调用者没有该字段的访问权限, 那么返回的结果中将不包含该字段.原创 2024-05-27 16:07:09 · 911 阅读 · 0 评论 -
odoo的ORM框架介绍(上)
classic_read 模式,具体指的是针对Many2one类型的字段(内部调用了convert_to_read方法,具体参考第十三章),read方法内部获取到字段的值的格式化方式,经典的格式化方法即使用name_get方法将值格式化可读的格式。方法,与name_search方法不同的是_name_search方法接受额外的一个参数:name_get_uid,这个参数的作用是指定一个调用_search和lazy_name_get方法的用户ID,用来解决当前用户权限不足的问题。原创 2024-05-27 16:04:15 · 940 阅读 · 0 评论 -
关于pgAdmin4中所创建数据库结构解释
对整个的数据库结构进行说明解释:: monitor_videos::: 未指定: 未指定: 未指定: 未指定。原创 2024-05-24 11:25:09 · 288 阅读 · 0 评论 -
Odoo的模块结构的构造是怎么样
_manifest__.py:这是一个必需的文件,包含了模块的元数据信息,如模块的名称、版本、作者、依赖关系等。__init__.py:这是Python模块的初始化文件,用于初始化模块并定义模块的元数据信息。views文件夹:包含了模块的视图定义,通常是XML文件,定义了模块的界面布局和数据展示方式。models文件夹:包含了模块的数据模型定义,通常是一个包含了模型类的Python文件。tests文件夹:包含了模块的测试文件,用于对模块进行单元测试和集成测试。原创 2024-05-24 11:00:32 · 145 阅读 · 0 评论 -
关于one2one、one2many、many2one、many2many的解释及举例应用
当谈到数据库关系时,"one2one"、"one2many"、"many2one"和"many2many"是常用的术语。这些术语描述了不同表之间的关系。这些关系在数据库设计和应用程序开发中经常被使用,能够帮助我们建立和管理复杂的数据关联。原创 2024-05-23 15:51:15 · 1402 阅读 · 1 评论 -
关于odoo博客项目的一份部分模型层的代码解释教学
关于odoo博客项目的一份部分模型层的代码解释教学原创 2024-05-23 15:08:47 · 188 阅读 · 0 评论 -
关于用odoo做系统如何分析选择模块(本文以up主所开发教学考试平台为例)
这些模块可以帮助你构建一个完整的教学考试平台,满足学生学习和评估的需求。Odoo的模块通常是开源的,但可能需要额外的定制和支持。:考虑每个模块的定制能力。有些模块可能需要一些定制才能满足你的特定需求,而有些模块可能已经包含了你需要的功能。:对比Odoo中可用的模块,例如教育模块、网站模块、问卷调查模块等,看哪些模块能够最好地满足你的教学需求。:如果你需要管理教师或管理员的信息,可以使用员工模块来创建员工档案和管理他们的权限。:Odoo的网站模块可以用于创建在线学习平台,包括学生注册、课程浏览和在线测试。原创 2024-05-21 12:36:56 · 241 阅读 · 0 评论 -
关于odoo模块权限分配方面的解释(本文以监控视频调取模块为例)
四、"monitor_videos_Operator" 和 "model_monitor_videos" 是根据您提供的信息中的命名约定来推测的名称。"model_monitor_videos" 可能是指一个特定的模型,用于存储和管理监控视频的数据。根据这些规则,access_monitor_videos_Operator 用户或属于 monitor_videos_Operator 用户组的用户将具有对 model_monitor_videos 模型或资源的完全访问权限,包括读取、写入、创建和删除操作。原创 2024-05-21 12:26:04 · 378 阅读 · 0 评论 -
关于视频提取odoo项目的部分代码解析2.0
这段代码定义了一个名为"监控视频查看"的Odoo模块,它具有一些基本的元数据信息,包括名称、描述、作者、版本等。这段代码是一个Odoo模块的描述文件,用于定义模块的元数据和依赖关系。:这是一个布尔值,指示模块是否在依赖的模块安装完成后自动安装。:这是模块的详细描述,提供了关于模块功能和用途的详细说明。:这是模块的分类,用于在Odoo应用程序中进行筛选和分类。:这是模块所依赖的其他模块列表。:这是模块的简要摘要,用于描述模块的目的。:这是模块的作者,可以是个人或公司的名称。:这是模块的版本号。原创 2024-05-20 19:04:38 · 232 阅读 · 0 评论 -
关于视频监控提取的部分代码解析
的Odoo模型,该模型包含了名称和编号两个字段。这些字段将用于在Odoo应用程序中存储和显示监控视频的相关信息。:这是模型的唯一标识符,其他模型可以通过这个标识符引用这个模型。这段代码是一个简单的Odoo模型定义。: 这行代码导入了在Odoo中定义模型所需的基本模块。:这是另一个Char类型的字段,用于存储监控的编号。:这是模型的描述,它提供了关于模型用途的简要说明。:这是一个Char类型的字段,用于存储监控的名称。:这是一个Python类的定义,它继承自。,这意味着它是一个Odoo模型。原创 2024-05-20 19:03:09 · 210 阅读 · 0 评论 -
odoo17书城模块views.xml文件解释说明
这段XML代码是用于在Odoo中定义视图和操作的。这段代码的作用是在Odoo中创建一个图书店应用的菜单结构和视图定义。原创 2024-05-18 16:15:37 · 208 阅读 · 0 评论 -
ERROR odoo odoo.modules.registry: Failed to load registry
registries和new方法主要用来处理dbname和regstry的关系,而registry的任务则是处理model和modelclass的关系,下面我们就来看看它的实例属性和方法。Registry中有个load方法用来加载给出的模块中的所有改动过的模型的名称,然后再调用模型(model)的_build_model方法,将模型注册到registry中。自己创建模块,创建完成,但是增加模块入库过程中会出现报错的问题,导致模块安装不上去。通过自己查找资料研究得出是继承关系有些问题。原创 2024-05-18 16:08:02 · 346 阅读 · 0 评论 -
XODOO博客项目的代码逻辑
总的来说,这段代码定义了一个基于Odoo框架的博客文章模型,包括了一些字段和方法。这段代码是一个基于Odoo框架的博客模块的定义。代码开头包含了一些注释,包括作者信息、公司网址、版权声明等。的模型,用于表示博客文章。在模型定义中,包括了一些字段,如。的模型,用于表示博客文章。的方法,用于切换文章的发布状态。然后导入了一些模块和类,包括。原创 2024-05-10 21:03:45 · 196 阅读 · 0 评论 -
一份关于XODOO博客项目的代码解析
代码定义了一个Odoo模型,用于管理博客分类的数据,并包含了一些计算字段值和约束条件的方法。这段代码是用Python编写的Odoo模块,用于定义博客分类的模型。的模型,用于表示博客分类。在模型定义中,使用了一些装饰器和字段类型,例如。等字段,用于存储博客分类的相关信息。导入了所需的模块和异常类。接下来定义了一些方法,如。用于计算显示名称等。原创 2024-05-10 21:01:01 · 255 阅读 · 0 评论 -
xodoo报表
我们这里所说的报表,实际上指的是(ir.actions.report),不是应用意义上的报表文件. 报表动作是连接WC与QWeb引擎的桥梁, 它负责将模型数据与QWeb的模板文件相结合, 最终渲染成为我们看到的报表文件.我们编程意义上的定义一个报表,实际上也是定义一个报表动作,本章我们就来详细了解以下odoo中报表的工作机制.原创 2024-05-09 13:12:30 · 353 阅读 · 0 评论 -
xodoo邮件
电子邮件模板使用Jinjin2语言, 可以使用${object.name}形式的变量来动态生成内容。如果一个模型想要生成共享URL, 那么该模型就需要继承portal.mixin对象。原创 2024-05-09 13:12:00 · 398 阅读 · 0 评论 -
xodoo 国际化
起始符号 | 符号解释 | 包含内容 | | ---- | ---- | ---- | |"# "|紧跟空格|根据提取指令生成,以及翻译者所编写的注释| |"#."|紧跟句点|额外注释,从源代码注释生成 | |"#:"|紧跟冒号|表明待翻译语句的出处,一般标记源代码文件及行数| |"#,"|紧跟逗号|由编译器生成的格式注释| |"#|"|紧跟上一句未翻译文本,较少见|翻译也是可以通过代码的方式进行覆盖的, 方法非常简单即在你自己开发的模块下的i18n模块中新建同名的语言翻译文件即可.原创 2024-05-09 13:11:29 · 286 阅读 · 0 评论 -
xodoo QWeb
首先我们需要知道QWeb是什么, QWeb是odoo用来渲染HTML的模板引擎, 类似于Jinjia2之于Django. QWeb引擎的标志就是使用t-开头的控制语句.下面我们来详细学习一下QWeb模板引擎的相关知识.原创 2024-05-09 13:10:36 · 275 阅读 · 0 评论 -
xodoo 仓库
ir是infomation repository的缩写,意思是信息仓库,即这个架构下的所有对象都是为构建信息化服务的。在此架构下的对象有。原创 2024-05-09 13:09:17 · 295 阅读 · 0 评论 -
xodoo用户与组
有时候,我们会有这样的需求,在某个引用了用户对象的Many2one字段中,对某个组的用户进行过滤,例如,这里有某个对象的字段engineer使用Many2one关联了用户这个对象,而此时用户想要这个字段只能显示某个组内的用户。这种情况下,通常的domian写法已经不能满足我们的要求,因此组对象不是一个特定的值,需要依赖系统生成的ID,因此我们需要借助ref方法来动态获取这个组对象的id,我们可以将domian使用一个函数将其动态地返回。用户在系统中的对象是res.users。原创 2024-05-09 13:08:39 · 354 阅读 · 0 评论 -
xodoo管理工具与配置
首先要知道,所有的配置都是继承自res.config.settings对象,res.config.settings是TransientModel,也就是说其参数并不永久存储在数据库中。那么odoo的配置都是将参数存在哪里了呢?我们要理解odoo的系统设置思路,系统设置大多都是以勾选和多选的形式出现的,偶尔会看到需要管理员手动填写的字段,这些需要填写的字段值就都存储在了系统参数表中。原创 2024-05-09 13:07:59 · 354 阅读 · 0 评论 -
xodoo消息总线
odoo内部集成了IM功能,即可以通过消息的方式即时通知其他用户,完成用户协作. 本章将详细介绍odoo内部的消息机制.原创 2024-05-09 13:07:16 · 334 阅读 · 0 评论 -
xodoo附件与二进制字段
所谓二进制字段,实际代表了odoo中的一类二进制文件,像普通的文件,图片、视频等。而附件则是指odoo中上传的文件以及编译后生成的js、css等文件,对应对象。二进制字段的底层实现使用了附件,因此二进制字段的行为表现跟附件基本一致。本章将详细介绍二进制字段与附件有关的内容。原创 2024-05-09 13:06:39 · 304 阅读 · 0 评论 -
XODOO上下文对象
严格地说,上下文(Context)并不是一类对象,它是一个概念上的数据集合, 而实现上就是一个字典的数据结构。但是它却在数据传递过程中有着非常重要的作用。本章将详细介绍上下文的概念及其使用方法.原创 2024-05-09 13:05:44 · 232 阅读 · 0 评论 -
xodoo 外部ID
xmlid的含义是指用户定义在xml记录中的id,即我们在xml文件中经常写到的id。它的作用是什么?我们知道,每个模块在安装的时候会自动加载预先定义好的基础数据,这部分数据中包括了,内置的权限组、记录规则、视图和一些组织数据。因为我们的模块设计的原则就是要能够独立安装、不依赖于特定的数据库。那么odoo中的某些业务逻辑需要获取这些预定义数据在数据库中的记录ID,这就是XMLID的作用,提供一种编程意义上的数据库id映射。原创 2024-05-09 13:04:57 · 367 阅读 · 0 评论