在 One2many 小部件 ODOO 中显示不在模型中的字段的最佳方式
Best way to show fields not in the model in a One2many widget ODOO
我想在表单上显示一列,但我要访问的字段未存储在模型中。
我有以下型号:
class Class1(models.Model):
_name = 'module.class1'
field1 = fields.Integer(string='field1')
field2 = fields.Integer(string='field2')
class Class2(models.Model):
_name = 'module.class1'
field1 = fields.Integer(string='field1')
field2 = fields.Integer(string='field2')
class3_ids = fields.One2many('module.class3', 'class2_id', string="class2")
class Class3(models.Model):
_name='module.class3'
class2_id = fields.Many2one('module.class2')
class1_id = fields.Many2one('module.class1')
field1 = fields.Float(string='field1')
我想在 class1 中显示 class2 记录的表单,但显示一些 class1 字段,如下所示:
<record id="module_class1_form" model="ir.ui.view">
<field name="name">module_class1: form</field>
<field name="model">module.class1</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="number"/>
<field name="class3_ids" nolabel="1">
<tree string="class3" editable="bottom" nolabel="1">
<field name="field1"/>
<field name="class1_id"/>
<field name="class1_id.SOMEFIELD"/>
</tree>
</field>
</group>
</sheet>
</form>
</field>
</record>
代码工作正常,除了我想访问和显示来自 class1 的数据的部分
我正在考虑使用计算字段,但这是一种更 pythonic 的方式吗?
谢谢
使用related
字段。在您的模型中:
class Class3(models.Model):
_name='module.class3'
class2_id = fields.Many2one('module.class2')
class1_id = fields.Many2one('module.class1')
field1 = fields.Float(string='field1')
class1field1 = fields.Integer(related='class1_id.field1')
并且在视图中:
<field name="class1field1"/>
我想在表单上显示一列,但我要访问的字段未存储在模型中。 我有以下型号:
class Class1(models.Model):
_name = 'module.class1'
field1 = fields.Integer(string='field1')
field2 = fields.Integer(string='field2')
class Class2(models.Model):
_name = 'module.class1'
field1 = fields.Integer(string='field1')
field2 = fields.Integer(string='field2')
class3_ids = fields.One2many('module.class3', 'class2_id', string="class2")
class Class3(models.Model):
_name='module.class3'
class2_id = fields.Many2one('module.class2')
class1_id = fields.Many2one('module.class1')
field1 = fields.Float(string='field1')
我想在 class1 中显示 class2 记录的表单,但显示一些 class1 字段,如下所示:
<record id="module_class1_form" model="ir.ui.view">
<field name="name">module_class1: form</field>
<field name="model">module.class1</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="number"/>
<field name="class3_ids" nolabel="1">
<tree string="class3" editable="bottom" nolabel="1">
<field name="field1"/>
<field name="class1_id"/>
<field name="class1_id.SOMEFIELD"/>
</tree>
</field>
</group>
</sheet>
</form>
</field>
</record>
代码工作正常,除了我想访问和显示来自 class1 的数据的部分 我正在考虑使用计算字段,但这是一种更 pythonic 的方式吗?
谢谢
使用related
字段。在您的模型中:
class Class3(models.Model):
_name='module.class3'
class2_id = fields.Many2one('module.class2')
class1_id = fields.Many2one('module.class1')
field1 = fields.Float(string='field1')
class1field1 = fields.Integer(related='class1_id.field1')
并且在视图中:
<field name="class1field1"/>