diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py
index d599a839ea7..42cfc0a6342 100644
--- a/addons/purchase/models/purchase.py
+++ b/addons/purchase/models/purchase.py
@@ -261,7 +261,7 @@ class PurchaseOrder(models.Model):
if partner.purchase_warn == 'no-message' and partner.parent_id:
partner = partner.parent_id
- if partner.purchase_warn != 'no-message':
+ if partner.purchase_warn and partner.purchase_warn != 'no-message':
# Block if partner only has warning but parent company is blocked
if partner.purchase_warn != 'block' and partner.parent_id and partner.parent_id.purchase_warn == 'block':
partner = partner.parent_id
diff --git a/addons/purchase/models/res_partner.py b/addons/purchase/models/res_partner.py
index f031fff08b4..477c8fa21a3 100644
--- a/addons/purchase/models/res_partner.py
+++ b/addons/purchase/models/res_partner.py
@@ -26,5 +26,5 @@ class res_partner(models.Model):
help="This currency will be used, instead of the default one, for purchases from the current partner")
purchase_order_count = fields.Integer(compute='_purchase_invoice_count', string='Purchase Order Count')
supplier_invoice_count = fields.Integer(compute='_purchase_invoice_count', string='# Vendor Bills')
- purchase_warn = fields.Selection(WARNING_MESSAGE, 'Purchase Order', help=WARNING_HELP, required=True, default="no-message")
+ purchase_warn = fields.Selection(WARNING_MESSAGE, 'Purchase Order', help=WARNING_HELP, default="no-message")
purchase_warn_msg = fields.Text('Message for Purchase Order')
diff --git a/addons/purchase/views/res_partner_views.xml b/addons/purchase/views/res_partner_views.xml
index ac8d39e558b..e0372333336 100644
--- a/addons/purchase/views/res_partner_views.xml
+++ b/addons/purchase/views/res_partner_views.xml
@@ -84,7 +84,7 @@
+ attrs="{'required':[('purchase_warn', '!=', False), ('purchase_warn','!=','no-message')],'readonly':[('purchase_warn','=','no-message')]}"/>