=========================== Base Many2many Custom Field =========================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:a7793ccbdbeaa52bb7d750c39eb939f300c72edc83585d22a1c04a6f53fb6383 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github :target: https://github.com/OCA/server-tools/tree/17.0/base_m2m_custom_field :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-base_m2m_custom_field :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| This module adds a new Many2many custom field with a create_table attribute. **Table of contents** .. contents:: :local: Usage ===== Many2manyCustom field is useful when a direct access to the relational table is needed, for example to be editable in a dedicated tree view. Let's consider following models: .. code:: python class MyModelA(models.Model): _name = 'my.model.a' my_model_b_ids = fields.Many2manyCustom( 'my.model.b', 'my_model_a_b_rel', 'my_model_a_id', 'my_model_b_id', create_table=False, ) class MyModelB(models.Model): _name = 'my.model.b' my_model_a_ids = fields.Many2manyCustom( 'my.model.a', 'my_model_a_b_rel', 'my_model_b_id', 'my_model_a_id', create_table=False, ) class MyModelABRel(models.Model): _name = 'my.model.a.b.rel' my_model_a_id = fields.Many2one( 'my.model.a', required=True, index=True, # Index is mandatory here ) my_model_b_id = fields.Many2one( 'my.model.b', required=True, index=True, # Index is mandatory here ) By setting create_table=False on the Many2manyCustom field, and using the relational table name, as \_name for the relational model, we're able to define a dedicated tree view for my.model.a.b.rel. .. code:: xml my.model.a.b.rel.tree.view my.model.a.b.rel 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 ------- * Camptocamp Contributors ------------ - Akim Juillerat - Tris Doan Maintainers ----------- This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org 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. 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.