form_page_dependencies
The what-links-here indicator for a website page, resolving the target model from the record before it asks.
August 27, 2026Updated August 29, 20264 min read
| Technical name | form_page_dependencies |
|---|---|
| Views | form (view widget, <widget> element) |
| Module | website, the Website app |
| Used in core | Page property forms in website |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | web_ribbon, url, documentation_link |
What the page dependencies does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
resModel | attribute read by the extractor | The model whose dependencies are searched. |
resIds | attribute, optional here | Optional in this subclass, because the identifiers are resolved from the record instead. |
mode | attribute read by the extractor | Passed through to the shared component, which uses it to decide the display. |
name | attribute read by the extractor | Defaulted to an empty string so an omitted attribute does not arrive as undefined.(default: empty string) |
The identifiers prop is optional here. The base component requires them; this subclass makes them optional because it resolves them from the record instead, which is the entire reason it exists.
Working examples
One overridden method, and a rare extractor
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Byte-identical to Odoo 19 on the development branch. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Same subclass and extractor. |
| Odoo 17.0 | Verified | Same approach with older component conventions. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. Present since Odoo 17. The subclass and its extractor have been stable across those versions, and the shared component it extends has absorbed the changes.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No dependencies are shown | Nothing links to the resolved targets. Expected, and the safe case for deletion. |
| The wrong records are checked | The widget resolves targets from a model field on the record, not the record itself. Use the base component where the identifiers are already known. |
| An error about a missing field | The record has no target model field to read. Use this widget only on forms that have one. |
| The popover will not close | The teardown waits for the hide event before disposing. Expected; it prevents a disposal race. |
| An attribute is ignored | Only four attributes are read by the extractor. Check the spelling against those four. |
| The widget is missing | The Website module is not installed in that database. Install Website. |
Page dependencies vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
form_page_dependencies | Showing what links to a page when the target has to be resolved from the record | Overrides only the identifier resolution, and declares an extractor, which most view widgets do not |
| web_ribbon | Marking a page's state | A label rather than a dependency check |
| url | A link field | One address rather than what points at it |
| documentation_link | Linking to documentation | An outbound link rather than inbound references |
Frequently asked questions
How does this differ from the base component?+
Why is the identifiers prop optional?+
Does it declare options?+
How many server calls does it make?+
Which versions have it?+
Website changes that do not break what worked
Internal links, redirects and page structure decide whether a redesign keeps its rankings. We handle Odoo Website builds and migrations without losing the links, on versions 16 through 19.
Book a free consultation