
ODOO15
文章平均质量分 69
odoo相关基础知识和遇见的问题汇总
柒柒钏
一个热爱python的程序媛,记录学习成长之路
展开
-
odoo15设置定时任务
以上模块初始化后,会在数据库的 ir.cron中生成一条记录,只要程序不中断,就会一直定时执行设置的任务。在模块的data文件夹下创建一个cron_res.xml的文件。主要是 ir.cron模型,它有以下属性。原创 2023-08-17 11:26:08 · 689 阅读 · 0 评论 -
models问题汇总
第二步:再删除表及在ir.model.access.csv中分配给ogsp.phone表的权限,最后升级模块。第一步:先删除全部表属性,升级模块。原创 2023-05-30 14:08:34 · 277 阅读 · 0 评论 -
Security in Odoo(中文翻译)
如果用户提供的数据是TEXT形式的(例如,由用户填写的表单的内容),并且如果该数据在放入CODE之前被正确转义,那么清理是无用的(但仍然可以完成)。转义将文本转换为代码。可以使用更安全的沙盒方法safe_eval,但它仍然为运行它的用户提供了巨大的功能,并且必须仅为受信任的特权用户保留,因为它打破了代码和数据之间的障碍。访问权限是附加的,用户的访问权限是他们在所有组中访问权限的并集,例如,给定一个用户属于授予读和创建访问权限的组a,而属于授予更新访问权限的组B,则该用户将拥有创建、读和更新这三种权限。翻译 2023-05-29 10:00:56 · 225 阅读 · 0 评论 -
QWeb 语法
QWeb是odoo的XML模板引擎,主要用于生成HTML页面模板指令是带有t-前缀的XML属性,如t-if原创 2023-05-24 11:33:10 · 1457 阅读 · 0 评论 -
odoo调用ApiPost
(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)(6,0,[IDs]) 用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环IDs执行(4,ID))(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)(1,ID,{values})更新id=ID的记录(写入values里面的数据)原创 2023-05-19 14:40:35 · 1328 阅读 · 0 评论 -
odoo建模遇见的问题
(可在pycharm的debug启动日志中查看,会报WARNING)原因:many2one 对应的 模型名写错了。原创 2023-05-11 14:31:23 · 173 阅读 · 0 评论 -
odoo开发者工具小虫图标的使用总结
点击查看字段创建新字段填好字段名称(必须以x_开头)、字段类型、字段标签点击Save,就会在字段列表中新增这个字段扩展表单视图添加字段选取Edit View: Form选项。原创 2023-05-11 14:30:11 · 182 阅读 · 0 评论 -
odoo权限规则
实际情况可能会方法一和方法二结合。对不敏感的模型开放较多权限,后续开发中有需求再在view中设置domain,缩小权限。对较敏感的模型先不开放权限,再通过前端不断对特别的组添加权限。在security文件夹下创建“模块名_security.xml”的文件中编写。在菜单定义处加groups属性(或者groups_id)在py文件里,做限制。原创 2023-05-11 14:25:47 · 2019 阅读 · 0 评论 -
odoo之预置数据
在 XML 数据文件中,每个 元素有两个基本属性:id 和 model,并包含为对应列设置值的元素。id 属性对应记录外部标识符,model 对应目标模型。元素有几种赋值的方法,下面一起来看看。直接为字段设置值元素的 name 属性标识要写入的字段。写入的值是元素内容:字段开、闭标签之间的文本。对于日期和日期,可使用带返回 date 或 datetime 对象表达式的 eval 属性设置。返回的“YYYY-mm-dd”和“YYYY-mm-dd HH:MM:SS”字符串会进行对应转化。原创 2023-05-11 14:18:24 · 634 阅读 · 0 评论 -
Odoo中的env
我们知道运行代码之前要建立环境,随后在环境中执行函数,环境中的方法是能够直接使用的,而 env 便是这样的一种环境。这一点从页面C返回到页面B是不知道的,所以就需要我们使用页面的上下文来记录页面的状态,更多更复杂的页面结构,都缺少不了这种状态的记录。如果执行了错误的操作,并且上次操作中修改过的属性会影响到后续操作的进行,这个时候就有必要清除缓存,在一个无干扰的环境下执行操作。比如从页面A编辑进入页面B,从页面B查看进入页面C,以简单的三层页面嵌套来讲,从页面C返回页面B时仍然是从A进入B的编辑样式。转载 2023-05-11 10:55:42 · 268 阅读 · 0 评论 -
odoo的一些基础概念
三层体系结构,表示层是HTML5、JavaScript和CSS的组合,逻辑层专门用Python编写,而数据层只支持PostgreSQL作为RDBMS。服务器和客户端扩展都打包为模块,可选地加载到数据库中。模块是针对单一目的的函数和数据的集合。Odoo中的一切都以模块开始和结束。原创 2023-05-10 14:01:35 · 764 阅读 · 0 评论 -
odoo之Web Controllers(二)
返回字符串@http.route('/index', auth='public', methods=["GET"],csrf=False, cors='*')返回json不带参数@http.route('/projects', auth='public', methods=["GET"],csrf=False, cors='*')带参数1)通过设置关键字参数获取...2)通过设置不定长参数kwargs获取# kwargs是个字典。原创 2023-05-10 13:54:38 · 1087 阅读 · 0 评论 -
odoo之Web Controllers(一)
控制器需要提供可扩展性,就像模型一样,但不能使用与先决条件(具有加载模块的数据库)可能尚不可用相同的机制(例如,未创建数据库或未选择数据库)因此,控制器提供了自己的扩展机制,与模型的扩展机制分开:控制器是通过继承自Controller创建的。路由是通过使用Route()装饰的方法定义的:要覆盖控制器,请从其类继承并覆盖相关方法,必要时重新公开它们:使用Route()装饰对于保持方法(和路由)可见是必要的:如果在不装饰的情况下重新定义方法,它将是“未发布的”所有方法的装饰器被组合在一起,如果覆盖方法的原创 2023-05-09 16:41:42 · 923 阅读 · 0 评论 -
Odoo的增删改查
api.model"""作用:记录创建方法。创建记录的orm函数。页面新建点击保存时触发调用。返回值为创建成功的记录集self:模型对象vals_list:页面数据列表,即要插入数据库中一条完整的数据列表,return: 返回模型对象,此处为ArticleAuthor对象,数据创建完成"""# 调用odoo自定义的create方法创建ArticleAuthor对象。原创 2023-05-09 16:30:54 · 2130 阅读 · 0 评论 -
模型修饰器 @api.model
【代码】模型修饰器 @api.model。原创 2023-05-05 17:31:07 · 200 阅读 · 0 评论 -
odoo之onchange函数
odoo之onchange函数转载 2023-05-05 16:29:05 · 237 阅读 · 0 评论 -
odoo的计算字段compute
【代码】odoo的计算字段compute。原创 2023-05-04 16:28:00 · 706 阅读 · 0 评论 -
odoo 常用小部件及其用法
模型字段为many2one类型,如果配置的字段过多,可以通过拖拽把常用的记录放在前面。odoo的一些小部件主要定义在:模块/static/src/js下。直接加widget属性就行,通常与button标签结合使用。模型可以根据sequence来排序,原创 2023-05-04 16:05:58 · 1005 阅读 · 0 评论 -
Odoo中的模型继承机制
在模块定制过程中,有许多情况需要继承一些模型以实现特定的情况。类继承用于添加 features与现有视图兼容的新类存储在同一表中原型继承用于 copy features新类被现有视图忽略存储在不同的表中代理继承支持多态继承新类被现有视图忽略存储在不同的表中新实例包含一个嵌入式的模型1的实例转载自:https://zhuanlan.zhihu.com/p/395341464。转载 2023-04-25 10:52:18 · 702 阅读 · 0 评论 -
odoo之Data Files
Odoo在很大程度上是数据驱动的,因此模块定义的很大一部分是它管理的各种记录的定义:UI(菜单和视图)、安全性(访问权限和记录规则)、报告和普通数据都是通过记录定义的。字段的内容可以通过使用文件属性的外部文件提供,也可以通过节点的主体提供。应包含任意数量的值元素,其属性与field相同,每个元素解析为生成的元组或列表的一个项目,并将生成的集合设置为字段的值。对于前面的方法不合适的情况,eval属性只是评估它提供的任何Python表达式,并将结果设置为字段的值。可用于清除字段,或避免使用字段的默认值。翻译 2023-02-10 15:17:14 · 267 阅读 · 0 评论 -
odoo中button的使用
表单可包含按钮,用于执行动作一个按钮的基本属性有:string:定义按钮显示文本type:执行的动作类型,object,action,workflow,默认是 workflowworkflow 用于触发工作流引擎信号;object 用于调用Python方法;action 用于运行窗口动作。name:所运行动作的ID,触发的方法标识。工作流信号名、模型方法名称或运行窗口动作act_window的数据库ID。class:应用 CSS 样式的可选属性,与HTML中用法相同。原创 2023-02-02 16:58:42 · 1203 阅读 · 0 评论 -
odoo之表单视图
可以是字段的名称,也可以是字段的id(字段上设置的id属性)。当视图中多次出现同一个字段,并且有几个标签组件与这些字段节点相关联时,这些标签的属性必须是唯一的(在本例中引用对应字段节点的id属性)。支持在表单视图中多次使用字段,并且字段可以接收修饰符“不可见”和“只读”的不同值。当字段组件没有直接放置在组中,或者设置了它的nolabel属性时,字段的标签不会自动与其值一起显示。默认情况下,组定义2列,组的大多数直接子项使用单个列。默认情况下,组的字段直接子项显示一个标签,标签和字段本身的跨度各为1。原创 2023-02-02 11:08:18 · 530 阅读 · 0 评论 -
Odoo甘特图
day: 记录时间快照到全天 (ex: 7:28 AM becomes 11:59:59 PM of the previous day, 10:32 PM becomes 12:00 PM of the current day)示例:default_scale周的偏移量为+1将打开下周的甘特图,default_scale月的偏移量为-2将打开2个月前的甘特图。精度属性示例: {“day”: “hour:quarter”, “week”: “day:half”, “month”: “day”}原创 2023-02-01 17:14:02 · 1109 阅读 · 0 评论 -
odoo之Calendar
您可以将特定的初始日期传递给操作的上下文,以便将日历的初始焦点设置在该日期周围的时间段(参见模式)上(要使用的上下文键initial_date))在单击时启用快速事件创建:仅向用户询问名称(此值保存到的字段可以通过rec_name控制),并尝试仅使用该名称和单击的事件时间创建新事件。用于颜色分割的记录字段的名称。相同颜色段中的记录在日历中被分配为相同的突出显示颜色,颜色是半随机分配的。保存事件结束日期的记录字段的名称(如果提供date_stop)记录可以直接在日历中移动(通过拖放)字段可以有额外的属性。原创 2023-02-01 16:05:53 · 853 阅读 · 0 评论 -
Odoo看板视图
日期或日期时间字段是否允许从组范围(由组的第一个和最后一个日期组成)计算的值。记录可以按列分组,用于工作流可视化或操作(例如任务或工作进度管理),也可以不分组(仅用于可视化记录)。看板视图是看板的可视化:它将记录显示为“卡片”,介于列表视图和不可编辑的表单视图之间。列的记录值将被求和并显示在进度栏旁边的字段的名称(如果省略,则显示记录总数)JSON将上述字段值映射到“危险”、“警告”、“成功”或“静音”颜色。字段的名称,该字段的值用于对进度栏中列的记录进行分组。sum_field(可选)原创 2023-01-31 16:45:57 · 1112 阅读 · 0 评论 -
odoo的field字段标签属性
转载于:https://www.cnblogs.com/ygj0930/p/10826356.html。转载 2023-01-05 14:36:41 · 810 阅读 · 0 评论 -
在表单视图模型中呈现Odoo中的Many2one的字段
需求:想根据模型A视图中得出Many2one的字段。在模型A中创建一个相关字段field_b。原创 2023-01-05 09:22:03 · 490 阅读 · 0 评论 -
创建odoo15项目
访问地址:http://127.0.0.1:8015/web?2)可直接使用odoo-bin的子命令脚手架来创建一个空模块。Odoo 提供了一种机制来帮助建立一个新模块。1)可新建manage.py文件来启动脚手架。原创 2023-01-03 14:57:00 · 542 阅读 · 0 评论 -
odoo学习之model
description = '组织信息'name = fields.Char(string="组织名称")social_credit_code = fields.Char(string="社会信用代码")org_manager = fields.Char(string="组织管理员")其中:_name为model的名称,建议都使用单数,然后不要使用_分割名称,一般都是使用 . 分割_description 是表名。原创 2022-12-29 14:44:59 · 978 阅读 · 0 评论 -
odoo学习之security, menu, tree, form
model_org_info:model_为固定开头,org_info为model的_name字段,但是要把 . 改成 _注:要在__manifest__.py中,把ir.model.access.csv注释打开,权限才生效。其中:access_org_info:access_为固定开头,org_info为模块名称。注意:注意顺序,菜单视图一定要放在最后,act_windows视图放在菜单视图的上面。org.info:为定义的模型文件里面model的_name字段。并在data中打开对应的权限文件的屏蔽。原创 2022-12-29 14:42:19 · 698 阅读 · 0 评论