跳转到主要内容

Many2many的定制化

项目描述

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

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

目录

用法

Many2manyCustom字段在需要直接访问关系表时很有用,例如在专用的树视图中可编辑。

让我们考虑以下模型

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

项目详情


下载文件

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

源代码分发

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

构建分发

由以下支持