我已经做了两个不同的类(model.Models)。我在一类中有10个字段,而我只需要从前一个类继承另一类中的两个字段。就像我在一堂课中更新两个字段一样,它必须在下一堂课中自动更新。所以请帮帮我。我应该如何继承这两个字段及其功能?
这是Odoo框架。
答案 0 :(得分:1)
您可以使用相关字段从另一个模型获取值。您可以通过为模型定义Many2one并使用相关字段访问该模型中的字段来实现此目的。
示例:
class ModelA(models.Model):
_name = 'model.a'
field1 = fields.Char()
.....
field10 = fields.Char()
class ModelB(models.Model):
_name = 'model.b'
model_a_id = fields.Many2one('model.a', string='Related Model')
field1 = fields.Char(related='model_a_id.field1', string='field1')
field2 = fields.Char(related='model_a_id.field2', string='field2')
您可以使用相关字段从model.b访问model.a中的任何字段。如果您从这些模型中的任何一个更改field1或field2的值,则更改将反映在两个模型中。因此,如果您不希望用户从model.b中更改这些模型的值,则可以在该模型中将它们设置为只读。
答案 1 :(得分:0)
<record id="ping_tree_view_id" model="ir.ui.view">
<field name="name">Ping tree view</field>
<field name="model">ping.ping</field>
<field name="arch" type="xml">
<tree string="Ping">
<field name="model_a_id"/>
<field name="Last_update"/>
<field name="Last_attempt"/>
</tree>
</field>
</record>
<record id="ping_form_view_id" model="ir.ui.view">
<field name="name">Ping form view</field>
<field name="model">ping.ping</field>
<field name="arch" type="xml">
<form string="Ping">
<sheet>
<group>
<field name="model_a_id"/>
<field name="Last_update"/>
<field name="Last_attempt"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="ping_actions_win">
<field name="name">Ping</field>
<field name="res_model">ping.ping</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>