我创建了一个结算系统,其中我有meter_no
,prev_reading
,current_reading
和consumed
字段。
在我的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.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。
答案 0 :(得分:5)
您可以将选项传递给搜索功能以获取最后一个ID:
record_ids = self.search([('meter_no','=',self.meter_no.id)], order='id desc', limit=1)
last_id = record_ids.id
...