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_ref
和search_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 特定表单视图的主要内容,如果未能解决你的问题,请参考以下文章