#user-interface #odoo #one2many
#пользовательский интерфейс #odoo #one2many
Вопрос:
Добрый день, коллеги,
Я пытаюсь создать надлежащий пользовательский интерфейс формы для модели, которая содержит вложенное поле One2many с глубиной = 2. Вот сокращенный список кода:
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
И вот текущая реализация 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>
Проблема возникает, когда я открываю эту форму: вместо «вложенных» полей (‘etalon_value’, ‘value’, ‘abs_error’, ‘max_error’) он показывает только идентификатор вложенного поля. Вы можете увидеть это там:
А вот форма, которая появляется сразу после нажатия на «родительскую» строку идентификатора:
Я мечтаю, чтобы «вложенные» поля (‘etalon_value’, ‘value’, ‘abs_error’, ‘max_error’) отображались в форме parent-s вместо просто ID, как показано по первой ссылке.
Не могли бы вы дать мне советы о том, как этого добиться.