0

我正在尝试使用 openERP 从 postgresql 数据库中检索当前 ID。这是我的功能(在一个类中):

def get_id(self, cr):
        cr.execute("SELECT id FROM table ORDER BY id DESC LIMIT 1")
        id = cr.fetchone()[0]
        return id

然后,我以这种方式调用该函数:

'last_id':fields.function(get_id, method = True, string = 'ID Number', type = 'integer')

但我收到以下错误:

TypeError: get_id() 正好需要 2 个参数(给定 7 个)

我究竟做错了什么?

4

2 回答 2

1

您没有正确定义函数语法。

def get_id (self, cr, uid, ids, fields, arg, context=None):
        res = {} 
        cr.execute("SELECT id FROM table ORDER BY id DESC LIMIT 1")
        id = cr.fetchone()[0]
        res[ids[0]] = id
        return res

做这样的事情

请阅读此文档。https://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/field_type.html

希望这会有所帮助。

于 2013-09-09T10:30:14.987 回答
1

你可以这样做。

def get_id(self, cr, uid, ids, fields, arg, context=None):
     res = {}
     for field in fields:
         cr.execute("SELECT id FROM table ORDER BY id DESC LIMIT 1")
         id = cr.fetchone()[0]
         res[ids[0]][field] = id
    return res
于 2013-09-09T12:44:41.383 回答