设置默认值的几种方式 context中设置default_字段名 设置-技术-用户定义的默认值中配置(存储在 ir.default模型中) 字段的default属性 父模型中的默认值 常在瞬态模型中重写...default_get设置默认值 界面点击创建按钮后发起一个onchange请求,onchange方法调用default_get返回默认值 odoo15/models.py @api.model
在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是在带有操作和菜单的XML文件中定义的。...列表视图,也叫树(tree)视图, 以表格的形式显示记录。 视图根元素为。...,如下: python odoo-bin --addons-path=custom,odoo/addons -r myodoo -w test123 -d odoo -u estate --dev xml.../> Odoo生成的默认搜索视图提供了按name筛选的快捷方式。...模型上使用时,以下domain选择单价高于1000的所有services: [('product_type', '=', 'service'), ('unit_price', '>', 1000)] 默认情况下
实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如图,给表单新增一个类似聊天的窗口,当记录一些表单活动(本例为自动记录当前记录状态变化) 需求实现 模型定义...odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪的字段设置tracking属性,并设置属性值为真值 #!...__manifest__.py 配置 odoo14\custom\estate\__manifest__.py 需要配置mail模块依赖,因为mail.thread模型归属该模块 #!...# -*- coding:utf-8 -*- { 'name': 'estate', 'depends': ['base', 'mail'], # 此处代码略... } 视图定义...> <!
继承开发 Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块。Odoo开发的一条黄金准则是——不要修改现有的模块,以免改动后的代码与原有模块产生混淆。...然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...static:静态资源文件,如css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令 使用...Odoo 脚手架 odoo-bin scaffold 命令新建了我们的 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需的字段有哪些,然后定义模型类...构建菜单对象——在views文件夹下,使用xml定义菜单项。 构建动作对象,关联某个具体菜单项的响应。 构建视图对象:主要是list、tree、form、search视图。
这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo中,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件中的记录来定义的。...动作可以通过三种方式触发 : 点击菜单项目(链接接到指定动作) 点击视图按钮(如果与action关联) 对象的上下文action 本章仅涵盖第一种情况。...卧室数量应该默认为2 默认可用日期应该为3个月 一些新属性 在进一步进行视图设计之前,让我们回到模型定义。...其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。...‘Unknown’,而last_seen 字段默认值为当前时间 练习 -- 设置默认值 添加适当的默认值: 卧室数量默认值为 2 可用日期默认为3个月内 修改 odoo14\custom\estate
_context, 'target': 'new' } } 说明:打开estate.customer.wizard默认form视图 形式3:实现类似浏览器刷新当前页面效果 return...> estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义的隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义的按钮模版名称...> 按钮视图模板定义 odoo14\custom\estate\static\src\xml\estate_customer_tree_view_buttons.xml <?...按钮颜色:btn-primary--主要按钮,btn-secondary次要按钮 按钮大小:btn-sm小按钮,btn-lg大按钮 默认按钮
实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去 odoo14\custom...= fields.Char() status = fields.Char() customer_id = fields.Many2one('estate.customer') 测试模型视图定义...> ,其中my_field_one_2_many为下文javascript中定义的组件,实现添加自定义按钮; my_field_one_2_many 组件定义 js实现 为列表视图添加自定义按钮...odoo14\custom\estate\static\src\js\estate_customer_inline_tree_buttons.js odoo.define('estate.customer.fieldOne2Many
实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图,列表网仓记录详情页面(form视图),编辑内联视图中的货主记录,为货主和仓库字段搜索,添加过滤条件...> 添加过滤条件代码实现 修改视图,给视图添加context 修改ResPartner,重写模型name_search(编辑货主字段,弹出下拉列表时,会请求该模型函数),search_read(编辑货主字段
注意,保存记录时调用inverse方法,而每次更改依赖项时调用compute方法。...> 重启服务,浏览器中验证(参考本章目标中的第二个动画视图) 其它信息 默认的,计算的字段不会存到数据库中,因此,不可能基于计算的字段进行搜索,除非定义一个search 方法。...设置“garden”字段后,我们希望为花园面积和朝向提供默认值。此外,当“花园”字段未设置时,我们希望花园面积和重置为零,并删除朝向。在这种情况下,给定字段的值会影响其他字段的值。...你对self所做的任何更改都将反映在表单上: from odoo import api, fields, models class TestOnchange(models.Model): _name...当计算字段依赖于其他计算字段时,更改值可能会触发大量重新计算。这会导致性能不佳。
在此示例中,我们将使用Odoo的默认端口8069,但这可能是您稍后在配置文件中指定的任何端口。如果您计划运行任何其他服务,也可以在此处添加其端口。...db_port = False- Odoo使用PostgreSQL默认端口5432,只有在使用自定义PostgreSQL设置时才更改此设置。...对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069。 注意 如配置日志部分中所述,在Ubuntu 16.04中有很多Odoo日志记录选项。...更改文件所有权和权限 更改odoo-server服务权限和所有权,以便只有root可以写入,而odoo用户只能读取和执行它。...由于odoo用户将运行该应用程序,因此相应地更改其所有权。
在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化的方式扩展现有模型。...目标: 在用户表单视图中显示与销售人员关联的avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展”视图应用于根视图之上,而不是就地修改现有视图(通过重写它们)。...这些扩展既可以添加内容,也可以从父视图中删除内容。 扩展视图使用inherit_id字段引用其父视图。...它的arch字段包含多个xpath元素,用于选择和更改父视图的内容,而不是单个视图:
与parent_path 字段一起,设置记录树结构的索引存储,以便使用child_of和parent_of域运算符对当前模型的记录进行更快的分层查询 _date_name= 'date' 用于默认日历视图的字段..._fold_name= 'fold' 用于确定看板视图中折叠组的字段 AbstractModel odoo.models.AbstractModel[源代码] odoo.models.BaseModel...最大图像分辨率请参阅odoo.tools.image.ImageProcess(默认值:50e6)。...这意味着视图中不存在的字段在创建记录期间不会触发调用。...这对于将新字段或方法添加到现有模型(在其他模块中创建)或自定义或重新配置它们(例如更改其默认排序顺序)非常有用: class Extension0(models.Model): _name =
) 22, 6010, 5432 Ports 22,80和5432分别是SSH,HTTP和PostgreSQL的默认通讯端口。...现在将依赖关系分组以突出显示新更改。...db_port:Odoo使用PostgreSQL的默认端口5432,只有在使用自定义PostgreSQL设置时才更改此设置。 db_user:PostgreSQL数据库用户的名称。...addons_path:默认插件路径,您可以添加用逗号分隔它们的自定义路径: logfile:Odoo日志文件的路径。.../ [Install] WantedBy=multi-user.target 更改文件所有权和权限 更改odoo-server服务权限和所有权,以便只有root才能写入,而odoo用户只能读取和执行它
1.原有效果截图 https://img-blog.csdnimg.cn/211b9e64b55946c89d5cdc004e4e57c5.png 2.实现后的效果 3.在原有视图上增加不少内容...,并且增加修改字段按钮,国内关于这方面的文档有点少,要研究一会才实现, 4,在原有模型上继续,增加字段 from odoo import api, models, fields class InheritMailActivity...20c299e3202c42e496b1e149af434cd0.png 6,在他们基础实现继承和修改,本来使用extend 和include 来 实现继承 js 修改进度弹窗的功能发现,最后直接在原型上继承 odoo.define..._reload(); }, }); } }) 6.form视图的继承代码 xml, Edit Progress 7.总结,Odoo
_context is {'key1': True, 'key2': True} 需要注意的是,上下文是和记录集绑定的,修改后的上下文并不会在其它记录集中共享 应用场景示例 用于action,为关联视图添加默认搜索...、过滤条件 视图定义 为设置action打开的tree列表视图,添加默认搜索,搜索条件为 state字段值等于True <?...用于搜索视图,添加分组查询条件 视图设计 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!
www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11 如果您想安装不同的Odoo版本,只需在--branch开关后更改版本号...默认的Odoo Web服务器通过HTTP提供流量。为了使我们的Odoo部署最安全,我们将Nginx配置为一个SSL终止代理,它将通过HTTPS提供流量。...默认情况下,Odoo服务器在所有接口上侦听端口8069,因此如果要禁用直接访问您的Odoo实例,您可以阻止所有公共接口的端口8069,或强制Odoo只在本地接口上侦听。...= 127.0.0.1 保存配置文件并重新启动Odoo服务器以使更改生效: sudo systemctl restart odoo 启用多处理 默认情况下,Odoo正在使用多线程模式。...服务以使更改生效: sudo systemctl restart odoo11 剩下的系统资源将被我们机器上运行的其他服务使用。
该练习是对前几章很好的扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图....将它们添加到form视图中新tab页面。 销售人员的默认值必须是当前用户。买家不能被复制。...提示:要获取默认值,请查看下面的注解或查看示例 user_id = fields.Many2one('res.users', string='Salesperson', index=True, tracking...提示: 视图中,使用 widget="many2many_tags"属性正如这里展示的一样。...其次,尽管property_id字段是必需的,但我们没有将其包含在视图中。odoo如何知道我们的报价与哪个房产相关?这就是使用odoo框架的一部分魔力:有时候事情是隐式定义的。
云服务器: ssh -q -l -p 22 命令行各参数说明: 云服务器登录账号:输入管理员账号(详见管理员账号管理 云服务器的公网IP:在云服务器“管理视图...”页面可查看云服务器的公网IP 注意:CentOS系统的默认管理员账号为root。.../log/odoo.log logrotate = True log_handler = :INFO pidfile = /data/odoo/proc/odoo.pid 创建ODOO运行环境需要的目录...mkdir /data/odoo cd /data/odoo mkdir data log proc 启动ODOO odoo.py -c /etc/odoo/openerp-server.conf...同时可以通过查看/data/odoo/log/odoo.log文件浏览系统日志 初始化结束,页面会自动跳转到应用页面,如下: 这样一个基本的ODOO框架就搭建完成。 参考:Odoo 文档
-> Users & Companies -> Groups),并为用户分配不同的用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便的管理用户组,odoo还支持对用户组...默认允许的记录规则:如果授予模型访问权限(Access Rights),并且没有规则适用于用户的操作和模型,则授予访问权限 记录规则保存在ir.rule模型表里,我们通过管理ir_rule表中的记录,即可控制记录的访问权限...规则默认适用所有操作。 笔者实践发现: 如果创建了规则,但是没有授权给用户,那对于该用户来说,该规则不起作用,就像该规则不存在一样。...groups属性实现的权限控制仅作用于当前视图,如果希望当前视图模型(Model)的所有视图中,对该字段实现统一的权限控制话,需要在模型定义中,为目标字段添加groups属性,如下: selling_price...' has no attribute 'multi' 说明:Odoo 13.0开始,移除multi,multi作为默认实现。
Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...看板视图的定义与列表视图和表单视图的定义相似,只是它们的根元素是kanban。...TypeError: Cannot read properties of undefined (reading 'value') 验证效果 让我们对视图做最后的修改:默认情况下,财产必须按类型分组。...练习--添加默认分组 使用合适的属性对房产分组,默认按类型分组。你必须阻止拖拽和删除。
领取专属 10元无门槛券
手把手带您无忧上云