Odoo继承字段和功能

时间:2019-04-02 10:03:28

标签: odoo

我已经做了两个不同的类(model.Models)。我在一类中有10个字段,而我只需要从前一个类继承另一类中的两个字段。就像我在一堂课中更新两个字段一样,它必须在下一堂课中自动更新。所以请帮帮我。我应该如何继承这两个字段及其功能?

这是Odoo框架。

2 个答案:

答案 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>