我创建了一个计费系统,其中有一个meter_noprev_readingcurrent_readingconsumed字段。
在我的onchange方法中,当我选择一个仪表编号时,我的prev_reading将通过current_reading的ID自动填充最后保存的meter_no的值。这是我的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。

最佳答案

您可以将选项传递给搜索功能,以获取最后的ID,如下所示:

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

...

关于openerp - 如何在Odoo中按ID获取以前的数据或最新的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40372212/

10-12 00:24
查看更多