diff --git a/addons/sale/models/sale_order_line.py b/addons/sale/models/sale_order_line.py
index 0944ee7e3ee7eceb3a4f48cf24ce22d121a7a3dd..5637873819a52e2bac62602a30461b7fd95b8de5 100644
--- a/addons/sale/models/sale_order_line.py
+++ b/addons/sale/models/sale_order_line.py
@@ -915,7 +915,8 @@ class SaleOrderLine(models.Model):
     @api.depends('state')
     def _compute_product_uom_readonly(self):
         for line in self:
-            line.product_uom_readonly = line.state in ['sale', 'done', 'cancel']
+            # line.ids checks whether it's a new record not yet saved
+            line.product_uom_readonly = line.ids and line.state in ['sale', 'done', 'cancel']
 
     #=== CONSTRAINT METHODS ===#