在many2one中显示另一个字段而不是名称

Viv*_*vek 5 openerp

我有很多这样的领域

'product_id': fields.many2one('product.product', 'Product', required=True)
Run Code Online (Sandbox Code Playgroud)

它显示所有产品名称(product_template类的name属性)并将id存储在其中.我想显示产品的part_number而不是名称和商店ID.有没有办法在openerp7中执行此操作.谢谢你的时间.

Adr*_*all 5

有几种方法可以做到这一点.

为关系字段显示的名称是name_get方法的结果.您可以继承product.product和覆盖,name_get但这会影响整个系统,每次产品显示时都会改变这一点.你可以使用context它来编码,但它开始变得混乱.

如果你只是想要代码,我会创建一个像这样的相关字段.

'product_ref': fields.related(
        'product_id',
        'part_number',
        string='Product',
        readonly=True,
        type='char',
        help = 'The product part number',
        )
Run Code Online (Sandbox Code Playgroud)

然后在表单上使用它.ORM层足够智能,如果您的特定记录没有产品ID或产品没有部件号,它将优雅地处理它.

如果你需要变得有点棘手,你可以创建一个功能字段,例如显示名称和部件号.


小智 -2

当您使用浏览方式时,您可以获得产品的所有信息数据。

如果您获得属性,请使用:

<yourobject>.product_id.name
<yourobject>.product_id.default_code
<yourobject>.product_id.type
<yourobject>.product_id.<your_property>
Run Code Online (Sandbox Code Playgroud)

我希望你使用。问候