在 Odoo ERP 中,每当我们发出报价、销售订单,或在任何情况下输入产品名称时,我们都能看到在下拉列表中显示您可能要选择的产品选项的。在此列表中,产品名称前面有一个称为内部参考的独特代码,用户可以从两个或两个以上同名产品中选择到准确的产品。
使用 Odoo 中的name_get()即可实现该功能
这是name_get()的记录集信息,
Model.name_get() ? [(id, name), ...]
现在让我们看看如何定义model内的name_get()功能,
在这里,我有一个自定义模型'Profit centers',它有2个字段,如下图所示
现在,每当我调用此模型使用其他型号之间的 Many2one 关系时,只有Profit Center利润中心名称显示在下拉列表中
所以,我们使用Odoo 中的name_get()功能来添加每个利润中心的短名称,
首先我们定义model"Profit.center"内的name_get(),
定义name_get ()
class ProfitCenterInherited(models.Model): _inherit = 'profit.center' def name_get(self):result = [] for rec in self:result.append((rec.id, '%s - %s' % (rec.short_name,rec.name))) return result
这里的"short_name"和"name"分别是利润中心简称和利润中心名称的技术名称。
我们运行此代码,可以看到所需的输出(如下文所示)
参考这种方式,我们可以定义任何模型中的name_get()功能,以便更好地澄清数据,并帮助用户从列表中选择到确切的项目。