如何在 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简洁与高效。

相关推荐
RestCloud21 小时前
从ETL到ELT:大数据时代下两者的选型建议及优势
大数据·数据仓库·etl·数字化转型·数据集成平台·elt
有颜有货2 天前
2025最新数字化转型国家标准《数字化转型管理参考架构》 正式发布
大数据·架构·数字化转型
RestCloud3 天前
典型的ETL使用场景与数据集成平台的应用
数据仓库·etl·数字化转型·数据迁移·数据集成·实时cdc
Odoo老杨3 天前
通过世界排名第一的免费开源ERP,构建富有弹性的智能供应链
供应链管理·odoo·数字化转型·erp·企业信息化
Odoo老杨5 天前
美关税加征下,Odoo免费开源ERP如何助企业破局?
odoo·数字化转型·erp·企业信息化·关税
dephixf6 天前
MOM成功实施分享(八)汽车活塞生产制造MOM建设方案(第一部分)
智能制造·数字化转型·mom·mes·行业方案·汽车活塞
RestCloud6 天前
【谷云科技iPaaS观点】如何通过iPaaS平台实现主数据高效同步
科技·数字化转型·主数据·ipaas·mdm·数据管控·数据集成平台
weixin_404551246 天前
华为数字化转型-平台篇
华为·平台·数字化转型·总结
Sapphire~8 天前
odoo-045 ModuleNotFoundError: No module named ‘_sqlite3‘
python·ubuntu·odoo
神马行空9 天前
一文解读DeepSeek大模型在政府工作中具体的场景应用
人工智能·大模型·数字化转型·deepseek·政务应用