0

由于Many2one字段只显示一个字段,我想写一个函数在Many2one中显示两个字段,像这样:

def get_services(self, cr, uid, ids, context=None):
        values = cr.execute("""SELECT name, entity
                            FROM services WHERE id = 3""")
        values.fetchall()
        for value__ in values:
            if value__:
                return {'value': {'service_id': value__[0] + " | " + value__[1]},} # Example: "Service 1 | Google"

首先,可能吗?有没有这样做的模块?所以我可以看到它。

然后,我这样调用函数:

_columns = {
        'service_id':fields.function(get_services, type = 'many2one', obj = 'services_getservices_function', method = True, string = 'Service'),

我没有收到任何错误,但该字段未显示在屏幕上。

4

2 回答 2

1

您需要的是覆盖name_get服务模型。

https://doc.openerp.com/trunk/server/api_models/#openerp.osv.orm.BaseModel.name_get

于 2013-09-19T20:44:34.587 回答
0

解决了。

我创建了另一个包含名称和实体的字段。

'name_plus_entity':fields.char('All', size = 300),

然后我创建了一个函数“onchange”,所以每当字段“name”或字段“entity”发生变化时,字段“name_plus_entity”就会得到:“name”+“|”+实体。

此外,我在 XML 表单中隐藏了“name_plus_entity”字段。

于 2013-09-19T10:30:26.413 回答