Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
10255 มุมมอง

Hello everyone,

I try to calculate the value depending on previous record this is my code

 @api.depends('odometer')
    def get_km_parcouru(self):
        for record in self.sorted(lambda x: x.id):
            prev = self.env['fleet.vehicle.log.fuel'].search_read(
                [('id', '<', record.id)], order='date desc', limit=1)
            prev_record = prev[0]['odometer'] if prev else 0
            record.km_parcouru = record.odometer - prev_record

When I click on crate button I get this error 

ProgrammingError: can't adapt type 'NewId'

In:

 [('id', '<', record.id)], order='date desc', limit=1) 

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

At create moment the value record.id not exist in datatbase. When creating a record a model with computed fields, the records of the recordset will be in memory only. At that time the id of the record will be a dummy ids of type openerp.models.NewId

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
2
ก.ค. 24
15639
2
ก.ย. 23
8465
1
เม.ย. 20
4798
5
ก.ย. 19
5216
0
ก.ย. 19
2646