如何在Odoo中通过id获取以前的数据或最新数据?

时间:2016-11-02 03:51:59

标签: openerp odoo-8 odoo-9

我创建了一个结算系统,其中我有meter_noprev_readingcurrent_readingconsumed字段。 在我的onchange方法中,当我选择一个电平表编号时,我的prev_reading将自动填充上次保存的current_reading的值meter_no的ID。这是我的onchange方法:

@api.multi
@api.onchange('meter_no')
def onchange_meter_no(self):
    ids = self.search([('meter_no','=',self.meter_no.id)])
    last_id = ids and max(ids)
    if self.meter_no:
        self.prev_reading = last_id.current_reading or None

但是这总是返回第二个值,而不是最后一个数据。例如,BILL-01 prev_reading = 0.0current_reading = 10.0consumed = 10.0。在BILL-02中,数据按预期正确,prev_reading = 10.0,然后我输入current_reading = 20,然后consumed = 10。在第三次结算中,BILL-03 prev_reading始终为10,它始终相同,直到第四次,依此类推。这有什么问题?我已经使用max()来获取最后一个ID。

1 个答案:

答案 0 :(得分:5)

您可以将选项传递给搜索功能以获取最后一个ID:

record_ids = self.search([('meter_no','=',self.meter_no.id)], order='id desc', limit=1)
last_id = record_ids.id

...