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

时间:2015-01-22 18:48:04

标签: openerp odoo

我有一个column我目前有一个many2one字段,其中来自另一个类的员工Name。问题是我需要的不仅仅是名字,我想带Name + last name

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用'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字段中显示该合作伙伴的“名字”和“姓氏”。

因此,您必须在模型“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'中,当您尝试查看合作伙伴字段时,当您点击该多个合作伙伴字段时,它将显示“名字”以及“姓氏”。因此,您不需要任何'sale.order'模型,也不必将任何字段定义为'field.function'。