跳转到主要内容

Many2many的定制化

项目描述

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

此模块添加了一个具有 create_table 属性的新Many2many自定义字段。

目录表

用法

Many2many自定义字段在需要直接访问关系表时非常有用,例如在专用的树视图中可编辑。

让我们考虑以下模型

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
    )

通过在Many2manyCustom字段上设置 create_table=False 并使用关系表名称作为关系模型的 _name,我们能够为 my.model.a.b.rel 定义一个专门的树视图。

<record id="my_model_a_b_rel_tree_view" model="ir.ui.view">
    <field name="name">my.model.a.b.rel.tree.view</field>
    <field name="model">my.model.a.b.rel</field>
    <field name="arch" type="xml">
        <tree editable="top">
            <field name="my_model_a_id" />
            <field name="my_model_b_id" />
        </tree>
    </field>
</record>

错误追踪器

错误在GitHub Issues上跟踪。如果在那里遇到问题,请检查您的问题是否已被报告。如果您是第一个发现它的人,请通过提供详细且受欢迎的 反馈来帮助我们解决它。

不要直接联系贡献者以获取支持或帮助解决技术问题。

鸣谢

作者

  • Camptocamp

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

此模块是GitHub上的OCA/server-tools项目的一部分。

欢迎您贡献力量。有关如何贡献的信息,请访问https://odoo-community.org/page/Contribute

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

此版本没有可用的源代码分布文件。请参阅生成分布存档的教程

构建分布

由以下提供支持