=========================== Base Many2many Custom Field =========================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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/12.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-12-0/server-tools-12-0-base_m2m_custom_field :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png :target: https://runbot.odoo-community.org/runbot/149/12.0 :alt: Try me on Runbot |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-block:: 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-block:: 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 smashing 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 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.