Odoo Community Association

Base Url

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

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.

Table of contents

Development

To use this module, you need to inherit the abstract.url model and override the _get_keyword_fields method to include your custom url fields. By default, the _get_keyword_fields method returns the record name.

Here is an example of how to override the _get_keyword_fields method to include the default_code field for product.template records:

class ProductTemplate(models.Model):
    _inherit = ["product.template", "abstract.url"]
    _name = "product.template"

    def _get_keyword_fields(self):
        return super()._get_keyword_fields() + ["default_code"]

Your product template records will now have an url_key field that is generated from the name and default_code fields and a redirect_url_key field that will contain a list of redirect URLs (old url_key field values).

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Akretion
  • ACSONE SA/NV

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

sebastienbeau

This module is part of the OCA/server-tools project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.