Почему мои данные записи odoo xml не обновляются

Я унаследовал модуль (модуль набора персонала), а затем попытался обновить данные XML, но все мои попытки не увенчались успехом.

Я попытался обновить группу, например hr_recruitment.group_hr_recruitment_user, но обновление все еще не работает.

Смотрите мои коды: 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>

питон ->

from odoo import models, fields, api, _

класс 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)

манифест ->

{
'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

],

}

Я ожидал, что записи будут заархивированы

Что вы пробовали? Не могу увидеть ваш код.

Hermann12 10.05.2024 14:12

Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Community 10.05.2024 23:13

Как вы можете видеть записи, я пытался обновить существующие записи, но мое обновление не работает. Я предоставил больше кодов, чтобы дать вам контекст.

Paul Nnamdi 12.05.2024 01:51

@Robert Этот вопрос закрыт, поскольку данные отладки отсутствуют, но, к сожалению, вы не можете получить подробную информацию об отладке. Все, что вам нужно, есть в вопросе. Закрытие этого вопроса из-за отладочных данных неверно.

Kenly 15.05.2024 12:28
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В режиме обновления запись не будет обновляться , если узел данных явно откажется от этого с помощью @noupdate = "1". Эти записи имеют пометку Необновляемые.

Вам необходимо установить noupdate на False и обновить записи (затем сбросить noupdate на True)

Пример:

<function name = "write" model = "ir.model.data">
    <function name = "search" model = "ir.model.data">
        <value eval = "[('name', '=like', 'stage_job_'), ('model', '=', 'hr.recruitment.stage')]"/>
    </function>
    <value eval = "{'noupdate': False}"/>
</function>

<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>

<function name = "write" model = "ir.model.data">
    <function name = "search" model = "ir.model.data">
        <value eval = "[('name', '=like', 'stage_job_'), ('model', '=', 'hr.recruitment.stage')]"/>
    </function>
    <value eval = "{'noupdate': True}"/>
</function>

Ух ты! Это действительно здорово! Я это проверю.

Paul Nnamdi 13.05.2024 20:05

Я проверил это, прежде чем опубликовать этот ответ!

Kenly 15.05.2024 09:58

Извините, это действительно сработало. Но мне потребовалось установить noupdate = "0", поскольку я обновляю модуль, а не устанавливаю. Спасибо за это.

Paul Nnamdi 15.05.2024 10:45

Другие вопросы по теме