我创建了一个计费系统,其中有一个meter_no
,prev_reading
,current_reading
和consumed
字段。
在我的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.0
,current_reading = 10.0
和consumed = 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/