XPath Errors in Odoo View Inheritance
When extending views with XPath expressions, you encounter:
ValueError: Element ''
cannot be located in parent view
View error: //div[@class='oe_title'] not found in parent view
ParseError: "Element ''
cannot be located in parent view"Understanding XPath in Odoo Views
Odoo uses XPath to locate elements in parent views for insertion, replacement, or modification. The expression must match exactly one element in the parent view's XML structure.
Fix 1: Wrong Field Name or Attribute
Fix 2: Element Changed by Another Module
Another installed module may have already modified the parent view, removing or renaming the element you target:
# Check the final rendered view
# Settings > Technical > Views > find parent view > Architecture tab
# This shows the combined result of all inherited views
# Or via database:
sudo -u postgres psql -d mydb -c "
SELECT arch_db FROM ir_ui_view
WHERE key = 'sale.view_order_form' AND inherit_id IS NULL;
"
# List all views inheriting from the parent
sudo -u postgres psql -d mydb -c "
SELECT v.key, v.name, v.priority
FROM ir_ui_view v
WHERE v.inherit_id = (
SELECT id FROM ir_ui_view WHERE key = 'sale.view_order_form' AND inherit_id IS NULL
) ORDER BY v.priority;
"Fix 3: Correct XPath Syntax
Custom content
Approve Order
Fix 4: Position Attribute Issues
position="after"
position="before"
position="inside"
position="replace"
position="attributes"
position="move"
Fix 5: Shorthand vs XPath Notation
Fix 6: Element Appears Multiple Times
Fix 7: Testing XPath Expressions
# Test your XPath against the actual view in Odoo shell
import lxml.etree as ET
view = env.ref('sale.view_order_form')
arch = ET.fromstring(view.arch)
# Test your expression
results = arch.xpath("//field[@name='partner_id']")
print(f"Found {len(results)} matches")
for r in results:
print(ET.tostring(r, encoding='unicode'))Prevention
DeployMonkey's AI agent validates XPath expressions against the actual rendered parent view. Ambiguous matches and missing elements are detected during development, preventing inheritance errors.