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

hello every body,

i need to unlink some lines in my one2Many field while adding news ..

i try this code:

class Devis(models.Model):
_inherit = 'sale.order'

@api.onchange('order_line')
def _onchange_price(self):
for record in self.order_line:
if record.product_id.typea == "t":
record.unlink()

but the instruction :

record.unlink()
do not work !
อวตาร
ละทิ้ง

update your question with logs if any, usually this is the method we are using to delete the records using unlink() method. so please check whether it is record.product_id.type and you have the correct value "t". if the type is a many2one field then you will get the id instead of name, if selection then check the values.

คำตอบที่ดีที่สุด

Hii,

Use filtered and update the recordset instead of calling unlink() :

from odoo import models, api


class Devis(models.Model):

    _inherit = 'sale.order'


    @api.onchange('order_line')

    def _onchange_price(self):

        self.order_line = self.order_line.filtered(lambda line: line.product_id.typea != 't')

try this 
i hope it is use full

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

Hi,

Can you try use the following.

self.order_line = [(3, ID)]

ID = Id of record want to remove

Regards

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

I think it's might help you.

def create_progress_history(self):
for task_id in self.task_ids:
for progress_history in task_id.task_progress_ids:
if progress_history.status == "forecast" or progress_history.status == False:
progress_history.unlink()
อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
0
ก.ย. 23
144
2
ม.ค. 24
16341
1
เม.ย. 17
6182
1
ก.ค. 25
1983
1
พ.ค. 24
10925