many2many 字段上的 Odoo 特定表单视图

Posted

技术标签:

【中文标题】many2many 字段上的 Odoo 特定表单视图【英文标题】:Odoo specific form view on many2many field 【发布时间】:2017-07-18 08:27:45 【问题描述】:

我有 many2many 字段:

supply_ids = fields.Many2many(comodel_name='supply.conditions',
                                          relation='purchase_supply_rel',
                                          column1='purchase_requests_id', column2='supply_conditions_id',
                                          string='Supply Conditions')

还有一段xml

 <page string="Order">
        <field name="supply_ids"/>
 </page>

我只有一个 supply.conditions 表单视图,但我想创建另一个(字段较少)并在 supply_ids 字段单击显示:

"Add object" -> "Create"

我不知道“添加对象”单击时调用了什么方法,或者如何在“添加对象”->“创建”按钮上选择特定的表单视图..

【问题讨论】:

【参考方案1】:

用like创建第二个表单视图

<record id="view_supply_conditions_form2" model="ir.ui.view">
    <field name="name">...</field>
    <field name="model">supply.conditions</field>
    <field name="priority">17</field>
    <field name="arch" type="xml">
        <!-- and so on -->
    </field>
</record>

然后在你的字段中使用上下文调用它:

<page string="Order">
    <field name="supply_ids"
        context="'form_view_ref':'my_module.view_supply_conditions_form2'"/>
</page>

编辑:

列表和搜索视图对应的上下文键是tree_view_refsearch_view_ref

感谢@Fractalf

【讨论】:

谢谢!我想补充一点,如果要以不同方式显示的字段是树视图,则必须使用tree_view_ref,同样使用搜索视图:search_view_ref 我们如何为 m2m 字段的每个不同行设置表单视图的引用? @Naitik 我认为这是不可能的。另一种方法是影响表单视图外观的行上的某个字段。因此,假设它们是一个字段“type”,它在值“type1”上显示一些字段,但隐藏其他字段,同样隐藏其他值。它将是相同的表单视图,但具有其他外观,具体取决于“类型”字段。【参考方案2】:

我找到了解决方案,在字段中添加了上下文:

 <page string="Order">
        <field name="supply_ids" context="'form_view_ref':'my_app_name.view_supply_conditions_form'"/>/>
 </page>

view_supply_conditions_form - 新表单视图

【讨论】:

以上是关于many2many 字段上的 Odoo 特定表单视图的主要内容,如果未能解决你的问题,请参考以下文章

在Odoo中的Many2Many字段插入请求在android中不起作用

插入 Many2many Odoo(前 OpenERP)

Odoo many2many command

Odoo12: 列表视图禁止打开表单内容

odoo 输入明细时 可以多选吗

doamin 过滤条件