The aim of this module is to provide a generic mixin for building urls on records.
The native odoo implementation of a record url is based on having an "id" in the url, this module provides an alternative way of doing it. Urls are generated and stored in an unique table (to ensure unicity). Redirections are also managed in case of url changes.
This project was initial build for shopinvader as we need to have unique url for the connected webshop. But this concept can be reused in other cases and even replace the odoo url implementation.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0This module provides a technical foundation for giving Odoo records clean, human-readable web addresses (URLs) instead of numeric IDs, and it automatically keeps old addresses working by redirecting them when they change.
This is a technical building block, not a ready-to-use business feature. It does not add clean URLs to any standard Odoo screen by itself; other modules must use it.
What it provides:
- A shared component (mixin) that other modules can attach to their records so each record can have one or more web addresses.
- A central list of all generated addresses, stored in the url.url model, so the same address cannot be used twice.
- Automatic redirects: when a record's address changes, the old address is kept and marked as a redirect to the new one.
Where it appears in Odoo: - A menu called "Url Rewrite" (under a technical parent menu) opens the list of all stored addresses. - On any screen of a model that uses this component, a smart button showing the number of URLs is added to the button box, and clicking it opens the related addresses.
Business rules and automatic behaviour: - Addresses are unique per referential and language; a duplicate raises an error. - Only one main (non-redirect) address is allowed per record, referential and language. - Addresses are generated from chosen fields (by default the record name) and refreshed automatically when those fields change. - When a record is deleted, its addresses are deleted too; when archived, a redirect strategy can be triggered.
Access is read-only for all users; only members of the "Edit url" group can create, change or delete addresses.
Depends on
Required by other modules
Menus it adds
Models and fields (2)
- url.url · new modelkey, manual, res_id (Record ID), lang_id (Lang), redirect, res_model, referential, need_refresh, res_model_field (Model Name)
- abstract.url · new modelurl_ids, url_key, count_url, redirect_url_key (Redirect Url Keys), url_need_refresh
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/server-tools.
terminal Installation and usage
No verified informationInstallation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.