如何获取记录名称并在表单上显示

2 投票
1 回答
573 浏览
提问于 2025-04-18 18:04

我遇到一个问题,保存一条记录后,显示的内容是模型名称加上记录编号,就像截图中那样。我只想让记录名称显示在那儿。提前谢谢你们的帮助。

我的表单,显示模型名称和记录编号

请帮帮我,除了 _rec_name,因为这里我从多个表中得到了多个 ID。

1 个回答

3

OpenERP/Odoo会调用你的模型中的name_get方法来显示名称。如果你重写了name_get方法,你可以返回任何你想要的内容,否则系统会使用BaseModel类中的name_get方法。

这个方法会:

  1. 返回你在模型中指定的字段,通常这个字段叫做_rec_name。
  2. 查找一个叫“name”的列,并使用这个列。
  3. 自动生成一个名称。

最简单的方法,正如Quentin所说,就是有一个叫“name”的列,但有时候这样做并不合适。例如,在product.supplierinfo中,name字段实际上是供应商的ID——看起来是有人懒得好好设计。

如果不这样做,你可以定义一个_rec_name字段,或者自己重写name_get方法,但这样做有几个需要注意的地方。

  1. 与功能字段不同,name_get返回的是一个元组列表,每个元组包含两个部分:ID和名称。
  2. 如果你使用的列不是name,或者你重写了name_get方法,你还需要考虑重写name_search方法,以确保用户体验的一致性。product.product模型中有很好的例子。

撰写回答