奥多。为什么我继承的 'hr.employee' 模型效果不佳?
Odoo. Why my inheritance of 'hr.employee' model is working bad?
我需要创建一个新模型,例如“hr.employee.lines”,以便将 1 名或多名员工分配给特定员工。像层次结构。
所以,在我的 hr_employee.py 文件中我有这个:
from odoo import fields, models, api, _
class Employees(models.Model):
_inherit = 'hr.employee'
approvers = fields.One2many('hr.employee.approvers', 'employee_id')
class EmployeeApprovers(models.Model):
_name = 'hr.employee.approvers'
employee_id = fields.Many2one('hr.employee')
lower_limit = fields.Integer('Lower limit')
upper_limit = fields.Integer('Upper limit')
在数据库上一切看起来都很好。问题是当我尝试在 'hr.employee' 表单中添加 'hr.employee.approvers' 时。
在这张图片中,您可以看到我在保存之前要添加的内容。
而且,当我保存它时,员工更改为实际员工的姓名。
我认为没有问题是 XML,但我可能是错的,所以我会把它写下来。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_hr_employee_form_inherit" model="ir.ui.view">
<field name="name">hr.employee.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='public']" position="inside">
<group string="Aprobadores">
<field name="approvers">
<tree string="Aprobadores" editable="bottom">
<field name="employee_id"/>
<field name="lower_limit"/>
<field name="upper_limit"/>
</tree>
</field>
</group>
</xpath>
</field>
</record>
</data>
</odoo>
我将不胜感激。
One2many field:
The value of such a field is the recordset of all the
records in comodel_name
such that the field inverse_name
is equal to
the current record.
您正在编辑 inverse_name
字段的值,hr.employee.approvers
模型记录中 employee_id
的值应设置为 Eli Lambert
记录 id
.
您需要添加另一个字段 approver_id
来引用 hr.employee
并显示它而不是 employee_id
(使 employee_id
字段在表单视图中不可见)。
如果批准人是具有lower
和upper
限制的员工,请将这两个限制字段添加到员工模型中,并改用Many2many字段。
我需要创建一个新模型,例如“hr.employee.lines”,以便将 1 名或多名员工分配给特定员工。像层次结构。
所以,在我的 hr_employee.py 文件中我有这个:
from odoo import fields, models, api, _
class Employees(models.Model):
_inherit = 'hr.employee'
approvers = fields.One2many('hr.employee.approvers', 'employee_id')
class EmployeeApprovers(models.Model):
_name = 'hr.employee.approvers'
employee_id = fields.Many2one('hr.employee')
lower_limit = fields.Integer('Lower limit')
upper_limit = fields.Integer('Upper limit')
在数据库上一切看起来都很好。问题是当我尝试在 'hr.employee' 表单中添加 'hr.employee.approvers' 时。
在这张图片中,您可以看到我在保存之前要添加的内容。
而且,当我保存它时,员工更改为实际员工的姓名。
我认为没有问题是 XML,但我可能是错的,所以我会把它写下来。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_hr_employee_form_inherit" model="ir.ui.view">
<field name="name">hr.employee.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='public']" position="inside">
<group string="Aprobadores">
<field name="approvers">
<tree string="Aprobadores" editable="bottom">
<field name="employee_id"/>
<field name="lower_limit"/>
<field name="upper_limit"/>
</tree>
</field>
</group>
</xpath>
</field>
</record>
</data>
</odoo>
我将不胜感激。
One2many field:
The value of such a field is the recordset of all the records incomodel_name
such that the fieldinverse_name
is equal to the current record.
您正在编辑 inverse_name
字段的值,hr.employee.approvers
模型记录中 employee_id
的值应设置为 Eli Lambert
记录 id
.
您需要添加另一个字段 approver_id
来引用 hr.employee
并显示它而不是 employee_id
(使 employee_id
字段在表单视图中不可见)。
如果批准人是具有lower
和upper
限制的员工,请将这两个限制字段添加到员工模型中,并改用Many2many字段。