首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在one2many弹出表单中加载另一个表的列表,以将其添加到Odoo12中的主表单中?

在Odoo12中,可以通过在one2many弹出表单中加载另一个表的列表来将其添加到主表单中。以下是一种实现方法:

  1. 首先,确保已经创建了两个相关的模型,一个是主表单模型,另一个是要添加到主表单中的子表单模型。
  2. 在主表单模型中,定义一个one2many字段,用于关联子表单模型。例如,假设主表单模型名为"MainModel",子表单模型名为"ChildModel",可以在"MainModel"中添加如下字段定义:
代码语言:txt
复制
child_ids = fields.One2many('child.model', 'main_model_id', string='Child Models')
  1. 在子表单模型中,定义一个many2one字段,用于关联主表单模型。例如,在"ChildModel"中添加如下字段定义:
代码语言:txt
复制
main_model_id = fields.Many2one('main.model', string='Main Model')
  1. 在主表单的视图中,添加一个one2many字段的tree视图,用于显示子表单的列表。例如,在"MainModel"的视图中添加如下代码:
代码语言:txt
复制
<field name="child_ids">
    <tree>
        <!-- 定义子表单的列表视图 -->
        <field name="field1"/>
        <field name="field2"/>
        <!-- 添加其他需要显示的字段 -->
    </tree>
</field>
  1. 最后,在主表单的视图中,添加一个按钮或链接,用于打开one2many弹出表单,并加载子表单的列表。例如,在"MainModel"的视图中添加如下代码:
代码语言:txt
复制
<button name="open_child_form" string="Add Child" type="object"/>
  1. 在"MainModel"的对应模型中,定义按钮的方法。例如,在"MainModel"的模型中添加如下代码:
代码语言:txt
复制
@api.multi
def open_child_form(self):
    return {
        'name': 'Child Form',
        'view_type': 'form',
        'view_mode': 'tree,form',
        'res_model': 'child.model',
        'type': 'ir.actions.act_window',
        'domain': [('main_model_id', '=', self.id)],
        'context': {'default_main_model_id': self.id},
    }

通过以上步骤,就可以在one2many弹出表单中加载另一个表的列表,并将其添加到Odoo12中的主表单中。

请注意,以上代码仅为示例,实际应用中需要根据具体的模型和字段名称进行相应的修改。此外,Odoo还提供了丰富的文档和社区支持,可以进一步了解和学习Odoo的开发和配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券