如何获取记录名称并在表单上显示
我遇到一个问题,保存一条记录后,显示的内容是模型名称加上记录编号,就像截图中那样。我只想让记录名称显示在那儿。提前谢谢你们的帮助。
请帮帮我,除了 _rec_name,因为这里我从多个表中得到了多个 ID。
1 个回答
3
OpenERP/Odoo会调用你的模型中的name_get方法来显示名称。如果你重写了name_get方法,你可以返回任何你想要的内容,否则系统会使用BaseModel类中的name_get方法。
这个方法会:
- 返回你在模型中指定的字段,通常这个字段叫做_rec_name。
- 查找一个叫“name”的列,并使用这个列。
- 自动生成一个名称。
最简单的方法,正如Quentin所说,就是有一个叫“name”的列,但有时候这样做并不合适。例如,在product.supplierinfo中,name字段实际上是供应商的ID——看起来是有人懒得好好设计。
如果不这样做,你可以定义一个_rec_name字段,或者自己重写name_get方法,但这样做有几个需要注意的地方。
- 与功能字段不同,name_get返回的是一个元组列表,每个元组包含两个部分:ID和名称。
- 如果你使用的列不是name,或者你重写了name_get方法,你还需要考虑重写name_search方法,以确保用户体验的一致性。product.product模型中有很好的例子。