我创建了一个计费系统,其中的字段为 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
...
关于odoo - Odoo中如何通过id获取之前的数据或者最新的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372212/