如何在 OpenERP (odoo) 中使用 many2one 字段同时显示两个字段?

How to use a many2one field to display two fields together in OpenERP (odoo)?

我有一个 column,我目前有一个 many2one 字段,该字段从另一个 class 获取一名员工的 Name。问题是我需要的不仅仅是名字,我想带Name + last name

我知道我必须使用 function field 但我不明白如何告诉新函数在哪里寻找值。

如果有人能指出我的文档或我可以遵循的类似示例,我将非常感激。

谢谢!

您可以使用'name_get'方法来实现。

def name_get(self,cr,uid,ids,context=None):
    result = {}
    for record in self.browse(cr,uid,ids,context=context):
        result[record.id] = record.name + " " + record.lastname

    return result.items()

以下只是一个例子:

有一个模型 'sale.order',因为有一个模型 'res.partner' 和 many2one。因此,假设您想在该 many2one 字段中显示该合作伙伴的 'First Name' 和 'Last Name'。

因此,您必须在模型 'res.partner' 中编写代码,而不是在 'sale.order' 模型中。

这是 'res.partner' 模型中的代码。

class res_partner_extention(osv.osv):

_inherit = 'res.partner'

def name_get(self,cr,uid,ids,context=None):
    result = {}
    for partner in self.browse(cr,uid,ids,context=context):
        result[partner.id] = partner.name + " " + partner.lastname

    return result.items()

所以现在,在 'sale.order' 中,当您尝试查看合作伙伴字段时,当您单击那个 many2one 合作伙伴字段时,它也会向您显示 'First Name' 'Last Name' .所以你不需要任何 'sale.order' 模型,也不需要将任何字段定义为 'field.function'.