You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 15表单视图中如何在Create按钮旁添加自定义按钮

在Odoo表单视图的「Create」按钮旁添加自定义按钮的正确方法

要在Odoo表单的「Create」按钮旁插入自定义按钮,核心是精准定位到顶部动作栏的Create按钮,以下是具体解决方法和常见问题排查:

正确的XML实现示例

通过继承原表单视图,使用XPath定位到Create按钮并插入自定义按钮:

<record id="custom_model_form_inherit" model="ir.ui.view">
    <field name="name">your.model.name.form.custom</field>
    <field name="model">your.model.name</field>
    <!-- 替换为你要继承的原表单视图ID -->
    <field name="inherit_id" ref="base.model_res_partner_form"/>
    <field name="arch" type="xml">
        <!-- 在Create按钮之后插入自定义按钮 -->
        <xpath expr="//form/header/button[@name='create']" position="after">
            <button name="action_custom_operation" type="object" string="自定义操作" class="btn-secondary"/>
        </xpath>
    </field>
</record>
  • 替换your.model.name为你的业务模型名
  • inherit_id的ref值要对应原表单视图的ID(比如伙伴视图是base.model_res_partner_form)
  • 自定义按钮的name需要对应模型中定义的同名方法:
class YourModel(models.Model):
    _name = 'your.model.name'

    def action_custom_operation(self):
        # 自定义按钮逻辑
        self.ensure_one()
        # 示例:弹出提示
        return {
            'type': 'ir.actions.client',
            'tag': 'display_notification',
            'params': {
                'message': '自定义按钮触发成功',
                'type': 'success'
            }
        }

常见问题排查

1. 自定义按钮被放到表单内部header

这是因为XPath误定位到了表单<sheet>内的<header>标签,而非顶部动作栏的<header>。解决方法是使用更精确的XPath://form/header/button[@name='create'],明确指定定位<form>根标签下的<header>里的Create按钮。

2. XPath报错找不到按钮

  • 检查按钮属性:有些自定义视图可能修改了Create按钮的name属性,或者用type="action"替代了type="object"。可以通过浏览器F12查看页面DOM,找到Create按钮的实际属性,比如改用//button[@string='Create']定位(注意多语言环境下string会被翻译,优先用name)。
  • 检查继承视图ID:确认inherit_id的ref值正确指向原表单视图,否则继承视图无法找到父视图的元素。
  • 适配Odoo版本:Odoo 16+的顶部按钮栏结构有调整,若上述XPath无效,可尝试定位到包含Create按钮的div容器,比如:
<xpath expr="//div[contains(@class, 'o_form_buttons_view')]/button[@name='create']" position="after">
    <!-- 自定义按钮 -->
</xpath>

实用技巧

  • 用浏览器开发者工具(F12)查看页面的HTML结构,直接复制Create按钮的XPath,确保定位精准。
  • 按钮样式使用Odoo内置类(如btn-secondary、btn-success),保持和系统按钮风格一致。

内容的提问来源于stack exchange,提问作者Jessy Rakotondrainibe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 13:33:31