选择第一个字段,其值在两个类之间

时间:2016-05-06 08:00:23

标签: python xml openerp

当我在2个类之间创建了一个很多关系时,它向我展示了openerp中的所有类。如何用他的值选择第一个字段?

class f_produit_fabrique(osv.osv):
"""(NULL)"""
_name = 'f.produit.fabrique'
_columns = {
    'code_prod': fields.char('Code_prod',size=30,required=True),
    'lib_prod': fields.char('Lib_prod',size=30,required=True),
    'coefficient':fields.integer('Coefficient',required=True),
    'produit_achete':fields.many2many('a.produit.achete'),
}

f_produit_fabrique()

class a_produit_achete(osv.osv):
"""(NULL)"""
_name = 'a.produit.achete'
_columns = {
    'code_prod': fields.char('Code_prod',size=30,required=True),
    'lib_prod': fields.char('Lib_prod',size=30,required=True),
    'prix_produitachete':fields.float('Prix_produitachete',size=30,required=True),
    'quantite':fields.float('quantite',size=30,required=True),
    'fournisseur_a_fournir': fields.many2one('fournisseur','fournisseur'),
}

a_produit_achete()

3 个答案:

答案 0 :(得分:3)

<强> Many2many

  • 对象之间的双向多重关系。
  • 这是最常见的一种关系:记录可能与另一方的任意数量的记录有关,反之亦然。
  • 在多对多关系的情况下,Products中的每一行都链接到Taxes中的零行,一行或多行,反之亦然。通常,New Table需要一个映射表来映射这种关系。
  • 在此关系中,需要新表来存储两个表的引用。

enter image description here

当您从odoo类或xml访问此字段时,它将返回关系表的可浏览对象列表。

因此,当您只在xml文件中显示简单的m2m字段时,它将在树视图中显示所有列的列表,如果您只想显示特定字段,则需要在树中指定这些字段。

<field name="m2m_field_name" >
    <tree>
        <field name="relation_table_field1"/>
        <field name="relation_table_field2"/>
        <field name="relation_table_field3"/>
    </tree>
</field>

如果你只想在那里有一个字段而你想像多选组合框一样显示它,那么你需要在那里应用小部件。

<field name="m2m_field_name" widget="many2many_tags" />

如果名称字段不存在,它将显示名称字段,然后它会在那里带来 _rec_name 字段的值。

答案 1 :(得分:0)

创建另一个树/表单视图,并在需要时使用它 或者写一个fields_view_get方法。

答案 2 :(得分:0)

将其添加到f.produit.fabrique模型视图:

<field name="produit_achete" >
    <tree>
        <field name="code_prod"/>
    </tree>
</field>