各位同事,下午好
我正在尝试为包含深度 = 2 的嵌套 One2many 字段的模型创建适当的表单 UI。这是缩短的代码清单:
class ModelA(models.Model):
v_enabled = fields.Boolean( compute='_compute_model_b_enabled', inverse='_set_model_b_enabled' )
v_set = fields.One2many( 'model.b', 'model_id', compute='_compute_model_b', required=True )
class ModelB(models.Model):
enabled = fields.Boolean()
type = fields.Integer()
measures = fields.One2many( 'model.c', 'measure_set' )
class ModelC(models.Model):
measure_set = fields.Many2one( 'model.b' )
etalon_value = fields.Float( readOnly=True )
value = fields.Float()
abs_error = fields.Float( readOnly=True, compute='_compute_abs_error')
max_error = fields.Float( readOnly=True )
它们之间的关系:
ModelA --- v_set ---> ModelB --- 测量 ---> ModelC
这是当前的 UI XML 实现:
<record id="model_a_form" model="ir.ui.view">
<field name="arch" type="xml">
<form>
<sheet>
<group>
<notebook>
<page string="Channel" name="channel">
<field name="v_set">
<form>
<field name="enabled" string="Is selected" />
<field name="measures" widget="section_and_note_one2many" mode="tree,kanban">
<form>
<field name="etalon_value" invisible="1"></field>
<field name="value" invisible="1"></field>
<field name="abs_error" invisible="1"></field>
<field name="max_error" invisible="1"></field>
</form>
<tree editable="bottom" create="false" delete="false">
<field name="etalon_value" string='Etalon'></field>
<field name="value" string='Measurement'></field>
<field name="abs_error" string='Abs error' readonly="1" ></field>
<field name="max_error" string='Max error' readonly="1"></field>
</tree>
</field>
</form>
</field>
</page>
</notebook>
</group>
</sheet>
</form>
</field>
</record>
当我打开此表单时出现问题:它只显示嵌套字段的 ID,而不是“嵌套”字段('etalon_value'、'value'、'abs_error'、'max_error')。你可以在那里看到它:
这是点击“parent”-s ID 行后出现的表单:
我梦想让“嵌套”字段('etalon_value'、'value'、'abs_error'、'max_error')以 parent-s 形式出现,而不仅仅是 ID,如第一个链接所示。
你能否给我一些关于如何实现它的提示。