First method
@api.onchange('sale_order')
def _onchange_product_id_domain(self):
product_ids_list = []
for invoice_number in self.sale_order.order_line:
product_ids_list.append(invoice_number.product_id.id)
# for empty field if sale_order field will empty
self.fieldNameWhereproductsdropdown(product.product) = False
return {'domain': {'fieldNameWhereproductsdropdown(product.product)': [('id', 'in', product_ids_list)]}}
Second Method (List Comprehension)
@api.onchange('sale_order')
def _onchange_product_id_domain(self):
self.description = False
product_list = [invoice_number.product_id.id for invoice_number in self.sale_order.order_line]
return {'domain': {'description': [('id', 'in', product_list)]}}