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

Odoo继承招聘模块后XML记录数据无法更新求助

问题描述

我继承了Odoo的Recruitment模块,尝试通过XML完成两项操作:

  1. 将系统自带的hr_recruitment.stage_job1至stage_job5这几个招聘阶段的active字段设为0(归档)
  2. 修改hr_recruitment.group_hr_recruitment_user用户组的配置

但所有操作均未生效,预期的归档效果没有实现。相关代码如下:

XML数据文件(hr_recruitment_data.xml)

<?xml version='1.0' encoding='utf-8'?>
<odoo>
    <data noupdate="0">
        <record id="hr_recruitment.stage_job1" model="hr.recruitment.stage">
            <field name="active">0</field>
        </record>
        <record id="hr_recruitment.stage_job2" model="hr.recruitment.stage">
            <field name="active">0</field>
        </record>
        <record id="hr_recruitment.stage_job3" model="hr.recruitment.stage">
            <field name="active">0</field>
        </record>
        <record id="hr_recruitment.stage_job4" model="hr.recruitment.stage">
            <field name="active">0</field>
        </record>
        <record id="hr_recruitment.stage_job5" model="hr.recruitment.stage">
            <field name="active">0</field>
        </record>
    </data>
</odoo>

Python继承代码

from odoo import models, fields, api, _

class hrRecruitmentStageInherit(models.Model):
    _inherit = "hr.recruitment.stage"

    group_ids = fields.Many2many('res.groups')
    stage_type = fields.Selection(
        selection=[
            ('initiation', 'Initiation'),
            ('interview', 'Interview'),
            ('selection_process', 'Selection Process'),
            ('documentation', 'Documentation'),
            ('audit', 'Audit'),
            ('accounts_finance', 'Accounts / finance'),
            ('background_checks', 'Background Checks')
        ],
        string='Stage Type'
    )

    active = fields.Boolean(default=True)

模块manifest配置

{
'name': "HR CBT Recruitment ",
'sequence': 10,
'depends': [
    'base',
    'hr_recruitment',
    'hr_recruitment_survey',
    'website_hr_recruitment',
     'hr_recruitment_sign',
],
'data': [
    'security/ir.model.access.csv',
    'security/security_view.xml',
    'views/hr_recruitment_stage_inherit.xml',
    'data/hr_recruitment_data.xml',  # Where the records are
],
}
排查与解决方案

1. 移除不必要的字段重定义

在Python继承类中,你重新定义了active字段:

active = fields.Boolean(default=True)

原hr.recruitment.stage模型已经自带active字段,且默认值就是True,重复定义会干扰Odoo对原字段的XML更新逻辑。删除这行代码,保留继承的原字段即可。

2. 补充用户组修改的XML代码

你提到要修改hr_recruitment.group_hr_recruitment_user组,但当前XML中没有对应代码,需补充类似以下内容(根据实际需求修改字段):

<record id="hr_recruitment.group_hr_recruitment_user" model="res.groups">
    <!-- 示例:修改组名称 -->
    <field name="name">自定义招聘用户组</field>
    <!-- 可添加其他需要修改的字段,如权限、关联菜单等 -->
</record>

3. 确保模块升级时正确加载数据

  • 修改代码后,必须升级模块(而非仅安装),升级时勾选「加载数据」选项;
  • 开发环境可通过命令行强制升级:
    odoo-bin -d 你的数据库名 -u HR_CBT_Recruitment
    
  • 查看Odoo日志,确认数据更新过程中没有报错。

4. 验证noupdate属性与加载顺序

  • 你的XML已经设置noupdate="0",确保了数据可以被更新,这部分是正确的;
  • manifest中depends已包含hr_recruitment,sequence=10也保证模块在基础招聘模块之后加载,无需调整。

内容的提问来源于stack exchange,提问作者Paul Nnamdi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:59:51