在 odoo 9 中的屏幕之间传递值

问题描述 投票:0回答:1

我有一个带有 Many2one 字段的模型,它允许我创建新记录,因此我想将模型 A 中选择的值之一传递到模型 B 的浮动创建窗口。

我正在阅读有关使用上下文的内容,但我不确定在这种情况下是否可以使用它。

Model A - Feature
Desc         >Char
Alternatives > O2M(Alternative,feature_id) 

Model B - Alternative
Desc         >Char
feature_id   >M2O(feature)

编辑我:添加模型之间的关系

我实际上使用了4个模型,版本,功能,替代品和标签,我想为我拥有的每个功能创建一个版本,一个功能有替代品,每个替代品都有标签

在我想要选择该功能的版本中,然后可以添加与该功能的替代方案相关的标签。

**version**
feature_id      m2o>feature
desc            char
tag_ids         o2m>tag,alternative_id

**tag** 
caption         char
alternative_id  m2o>alternative

**alternative**
desc            char
feature_id      m2o>feature
tag_ids         o2m>tag,alternative_id

**feature**
desc            char
alternative_ids o2m>alternative,feature_id

我可以使用上下文在版本上创建新标签吗?或者我必须使用相关字段?

python odoo odoo-9
1个回答
1
投票

将值传递给 m2o 字段的形式:

   <field name="m2o_field_name" context="{'default_field_name': field_name}"/>

示例:

  <field name="partner_id" context="{'default_email': company_email}" />

在我的模型中,有 m2o Partner_id 和名为 company_email 的字段,当我单击创建并编辑 company_email 的值时,company_email 的值将传递到合作伙伴表单中的电子邮件字段。

您可以像

'default_name': 'charif'
这样传递静态值,也可以像这样传递名为
field_example
的字段的值
'default_name': field_example

编辑:

version -->  feature    <--- alternative  <---  tags

首先您需要创建从标签到功能的 m2o:

    # don't forget store=True so you can create a o2m 
    feature_id = fields.Many2one(related='alternative_id.feature_id', store=True, readonly=true)

现在创建一个从功能到标签的o2m。

    tag_ids = fields.One2many('tag.model.name', 'feature_id', 'Tags')

在这里您可以创建从版本到功能标签的相关字段。

    tag_ids = fields.One2many(related='feature_id.tag_ids', readonly=true)
© www.soinside.com 2019 - 2024. All rights reserved.