2016-02-05 149 views
0

我想问一下Odoo many2one字段。Odoo名称在many2one字段的下拉列表中

在 'test.project.name' 的模式,有3个字段:

  • prj_id
  • 积极使用

其他两个型号“test.project.name 'with many2one field:

'project_id':fields.many2one('test.project.name','Project Name'), 

那时视图会显示'test.project.name'模型的名称字段数据。 一个模型是好的,但我想显示从'test.project.name'提交的prj_id的数据。

我可以这样吗?

如果您不介意,请分享一些想法。

谢谢。

+0

你的问题不太清楚。请尝试通过正确的描述深入解答您的问题。 –

回答

1

如果您需要系统中所有many2one('test.project.name')的新名称,请覆盖方法name_get。为了您的模型它会是这样(您使用旧的API):

class TestProject(osv.Model): 
    _name = 'test.project.name' 

    def name_get(self, cr, uid, ids, context): 
     res = [] 
     for record in self.browse(cr, uid, ids, context=context): 
      # As I understood prj_id it is many2one field. For example I set name of prj_id 
      res.append((record.id, record.prj_id.name)) 
     return res 

如果需要使用特定的字段自定义名称可以使用context打电话给你的自定义的方法是这样的:

<!-- in your view.xml --> 
<field name="project_id" widget="selection" context="{'compute_name': '_get_my_name'}"/> 

型号必须如下所示:

此解决方案还有一件事。

只有当您使用widget="selection"时,此方法才能正常工作。否则,您的自定义名称将仅用于下拉菜单中的项目,但选定的值将使用默认名称。

相关问题