One2many 字段显示 Odoo13 中的空条目/记录

Posted

技术标签:

【中文标题】One2many 字段显示 Odoo13 中的空条目/记录【英文标题】:One2many field shows empty entries/records in Odoo13 【发布时间】:2021-07-06 09:21:08 【问题描述】:

我想要一个 one2many 字段,其中包括两个不同的模型/类,hr.employee 和我的一个自定义模型 (project.roles)。但是,当我想将新记录添加到 one2many 列表时安装我的插件后,它为我提供了编辑选项,但列表/字段保持为空,并显示我尚未实现的字段“ID”。

这里有一些图片可以告诉你我的意思:

My Many2one field after editing and adding records

My Form-View for editing the Many2one field

这是我的python代码:

from datetime import timedelta

from odoo import api, fields, models, tools
from odoo.exceptions import UserError, AccessError, ValidationError


class Roles_Config_List(models.Model):
    _name = 'config.list'
    employee_id = fields.Many2one('hr.employee', string="Employee")
    choose_role = fields.Many2one('project.roles', string="Role")

class Roles_Config(models.Model):
    _inherit = 'project.project'
    emp_pro_id = fields.One2many(
        'config.list', 'employee_id', string="try")
    pro_emp_id = fields.One2many(
        'config.list', 'choose_role', string="Configuration")

这是“project.roles”类的代码:

from datetime import timedelta

from odoo import api, fields, models, tools
from odoo.exceptions import UserError, AccessError, ValidationError


class Roles(models.Model):
    _name = 'project.roles'

    role_id = fields.Char('Role', required=1, tracking=1)
    currency_id = fields.Many2one("res.currency", string="currency")
    rate = fields.Monetary('Rate (€)', required=1, tracking=1)

还有我的 xml:

<?xml version="1.0" encoding="utf-8"?>

<odoo>
  <record id="project_addon_config_roles" model="ir.ui.view">
    <field name="name">view.config.roles</field>
    <field name="model">project.project</field>
    <field name="inherit_id" ref="project.edit_project"/>
    <field name="arch" type="xml">
       <page name="settings" position="after">
        <page name="config_roles" string="Configuration Roles">
          <form>
            <sheet>
              <group name="config_roles_emp" string="Configuration">
                <field name="pro_emp_id" string="List" nolabel="0"/>
                <field name="emp_pro_id" string="Try"/>
              </group>
            </sheet>
          </form>
        </page>
       </page>
    </field>
  </record>
</odoo>

【问题讨论】:

【参考方案1】:

在这两种情况下,employee_idchoose_role 都应该等于当前项目。

该字段的值是comodel_name中所有记录的记录集,使得inverse_name字段等于当前记录。

您可以在Odoo documentation 阅读有关One2many 字段的更多信息

【讨论】:

感谢您的回复,肯利。我阅读了文档并尝试更改我的代码。但我仍然没有成功。老实说,我不明白。是因为我有 3 种不同的型号吗?我的 hr.employee 和 many2one 一样,project.roles 和 many2one 一样。而我只想在 project.project 模块中连接它们。 使用 One2many 字段时,您必须与声明 One2many 字段的同一模型具有反比关系。 好的,Kenly,非常感谢您的帮助。我现在理解了这个概念,我的代码可以按我的意愿工作,但我忘记了 one2many 字段之后视图中的树视图。

以上是关于One2many 字段显示 Odoo13 中的空条目/记录的主要内容,如果未能解决你的问题,请参考以下文章

在 Odoo 13 的 one2many 关系中显示非活动记录

Odoo 防止在 One2many 字段中选择重复记录

如何在odoo 使用one2many

odoo one2many 默认未设置

如何在 set_values 方法 odoo 14 中保存 one2many 字段

如何在 odoo 14 中取消缩小 one2many 树视图的列标题?