如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍
文 / 开源智造 · Odoo亚太金牌服务
引言
关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此强化了用户体验。在此篇文中,我们将渐次探究如何在 Odoo 18 中添加关联数据看板按钮。
Odoo的关联数据看板按钮概述
关联数据看板按钮乃是与本数据源产生关联数据且带有记录数显示的导航按钮,通常呈现为可点击的图标抑或按钮,安设于表单视图的标题之处。其能够展示相关记录的计数,诸如链接至客户的发票数量或者分配给项目的任务数量。一经点击,它们便会将用户引领至相应的记录,进而让相关数据的管理更为轻松便捷。
在表单视图中添加关联数据看板按钮
如需新增关联数据看板按钮,需要继承表单视图并将该按钮放在名为 'button_box' 的 <div> 结构之内,示例代码如下:
<record id="view_partner_form" model="ir.ui.view"><field name="name">res.partner.form.inherit.my.blog</field><field name="model">res.partner</field><field name="inherit_id" ref="base.view_partner_form"/><field name="arch" type="xml"><div name="button_box" position="inside"><button class="oe_stat_button" type="object" icon="fa-taxi" name="action_get_vehicles_record"></button></div></field></record>

借由在 res.partner 类中涵盖此记录以及函数 action_get_vehicles_record,您将会于合作伙伴表单里构建出一个带有出租车图标的全新关联数据看板按钮。
如何为关联数据看板按钮定义名称和关联数据
接下来,我们可以指定关联数据看板按钮的名称,并展现关联记录的计数。为达成此目的,请运用附加字段和计算函数来拓展 res.partner 模型,示例代码如下:
from odoo import models, fields
class ResPartner(models.Model):_inherit = "res.partner"vehicle_count = fields.Integer(string="Vehicles", compute='compute_vehicle_count', default=0)def compute_vehicle_count(self):for record in self:record.vehicle_count = self.env['fleet.vehicle'].search_count([('driver_id', '=', self.id)])
此设置允许关联数据看板按钮显示链接到合作伙伴的车辆数量。现在,更新您的 XML 记录以将 vehicle_count 包含在按钮定义中,示例代码如下:
<div name="button_box" position="inside"><button class="oe_stat_button" type="object" icon="fa-taxi"name="action_get_vehicles_record"><field string="Vehicles" name="vehicle_count" widget="statinfo"/></button>
</div>
接下来,凭借对 action_get_vehicles_record 函数的修改来明确关联数据看板按钮的操作。该函数将会对视图进行筛选,以展示与合作伙伴存在关联的车辆数据记录。示例代码如下:
def action_get_vehicles_record(self):self.ensure_one()return {'type': 'ir.actions.act_window','name': 'Vehicles','view_mode': 'tree','res_model': 'fleet.vehicle','domain': [('driver_id', '=', self.id)],'context': "{'create': False}"}

在车队模块中把部分车辆驾驶员与当下的合作伙伴相互关联之后,单击关联数据看板按钮便会展示出相关的车辆记录。
总结
依据本文的实施与开发技法,您能够顺遂地将关联数据看板按钮融入至 Odoo 18 应用进程之中,进而强化用户交互,推动更便捷的数据管理。关联数据看板按钮为相关记录提供了快速访问的途径,与此同时,维持着您的ERP UI简洁与高效。
相关文章:
如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍
文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…...
Linux下mysql环境的搭建
1.mysql的下载 去MySQL官网下载mysql的linux压缩包 MySQL :: Download MySQL Community Server 如果下载慢请到网盘中自行下载 通过网盘分享的文件:mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 链接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…...
视觉语言模型 Qwen2-VL
视觉语言模型 Qwen2-VL flyfish from PIL import Image import requests import torch from torchvision import io from typing import Dict from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor from modelscope import snapshot_dow…...
浅谈新能源汽车感应钥匙一键启动的步骤和特点
随着汽车智能化技术的发展,无钥匙启动系统还可以与其他智能系统进行集成,如智能车载系统、远程控制系统等。这使得车主可以通过智能手机等智能设备远程控制车辆的启动、解锁、上锁等操作,进一步提升了使用的便捷性和智能化水平。新能源汽车…...
鸿蒙ArkTS语言基础语法详解
文章目录 鸿蒙ArkTS语言基础语法详解一、引言二、ArkTS语言概述1. ArkTS语言特点2. TypeScript基础语法2.1 类型注解2.2 接口2.3 泛型2.4 类的继承2.5 类的访问修饰符 三、ArkTS的基本组成3.1 装饰器3.2 UI描述3.3 自定义组件3.4 系统组件3.5 属性方法和事件方法 四、自定义组件…...
H5游戏出海如何获得更多增长机会?
海外H5小游戏的崛起给了国内众多中小厂商出海发展的机会,开发者如何在海外市场获得更多的增长机会?#APP出海# H5游戏如何在海外获得核心用户? HTML5游戏的开发与运营者们首先可以利用量多质高的HTML5游戏,维持海外用户粘性&…...
Cmake+基础命令
一、版本要求: 检查 cmake 版本号的最低要求,不满足条件时报错。 cmake_minimum_required(VERSION <version>)参数: version:最低要求的版本号 例子: # 最低要求安装3.21版本的cmake cmake_minimum_required…...
python数据分析之爬虫基础:requests详解
1、requests基本使用 1.1、requests介绍 requests是python中一个常用于发送HTTP请求的第三方库,它极大地简化了web服务交互的过程。它是唯一的一个非转基因的python HTTP库,人类可以安全享用。 1.2、requests库的安装 pip install -i https://pypi.tu…...
PHP期末复习(通过30道填空题梳理知识点)
一、基本语法 PHP的开始标记是: <?php<?php 是PHP脚本的开始标签,所有PHP代码必须在这个标签内书写。 PHP文件的结束标记是: ?>?> 是PHP脚本的结束标签,在大多数PHP文件中,通常可以省略结束标记。 定…...
PostgreSQL 安装部署系列:使用YUM 方式在Centos 7.9 安装指定 PostgreSQL -15版本数据库
一、前言 千里之行始于足下,想学习一门数据库,首先要从安装部署开始,先拥有一套属于自己的学习测试库。为了更好的学习该数据库,可以选择一个在企业界使用率比较普及的操作系统,选择稳定版本的操作系统;如果…...
知识图谱8:深度学习各种小模型
1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具,适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言…...
为什么 JavaScript 中的 `new` 运算符报错?
在 JavaScript 中,new 运算符通常用于创建一个新对象并调用构造函数来初始化对象。然而,new 运算符可能会引发一些错误,通常是由于以下原因导致的: 构造函数没有正确的定义: 如果使用 new 运算符调用的函数没有正确地定…...
Tomcat,javaweb, servlet , springBoot
在server.xml里配置服务器 <scope>provided</scope>打包的时候,这个jar包不会被打进去,因为tomcat已将封装了这个jar包,没必要要这个...
使用Kimi开发自己的问答应用
概述 Kimi是大家常用的一个人工智能助手,本文使用Kimi开发文档,以node作为后端,开发与一个问答系统 实现效果 Kimi简介 Kimi是由Moonshot AI开发的人工智能助手,擅长中文和英文对话。目标是帮助用户解决问题、提供信息和执行任…...
TypeScript进阶
Typescript进阶 基础知识 JavaScript 的核心特点就是灵活,但随着项目规模的增大,灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数,这样就充满了不确定性。而且这些不确定性可能需要在代码运行…...
jenkins邮件的配置详解
Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…...
小皮面板(PHPSTUDY)配置多个域名或IP
问题描述 小皮面板默认采用nginx的静态部署,按照使用nginx的习惯只需要额外添加一个server即可,但是会发现直接往配置文件里添加新的server是不生效的,小皮的官网论坛几乎已经停止维护,因此资料较少,原本也没有仔细使…...
【大语言模型】LangChain LCEL 表达式语言
【大语言模型】LangChain LCEL 表达式语言 一、简介二、LCEL的优势三、LCEL 的基本使用1、Runnable 对象 四、实战实例 一、简介 LangChain LCEL 的全称为 LangChain Expression Language 即可直译为 LangChain 表达式。 为了构造更复杂的 LLM 应用并且更为简便快捷的构造 LLM…...
Leetcode 3382. Maximum Area Rectangle With Point Constraints II
Leetcode 3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路2. 代码实现 题目链接:3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路 这一题是题目3380. Maximum Area Rectangle With Point Constraints I的进阶版&#…...
MitelMiCollab 身份绕过导致任意文件读取漏洞复现(CVE-2024-41713)
0x01 产品描述: Mitel MiCollab 是一个企业协作平台,它将各种通信工具整合到一个应用程序中,提供语音和视频通话、消息传递、状态信息、音频会议、移动支持和团队协作功能。0x02 漏洞描述: Mitel MiCollab 的 NuPoint 统一消息 (NPM) 组件中存在身份验证绕过漏洞,由于输入…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
