如何在odoo 10中设置一个模型的多个视图?

时间:2019-03-19 06:56:08

标签: python odoo

我正在设置一个模型的多个视图(树,窗体)。

我有两个树视图和窗体视图,需要在其中打开树2视图作为记录。

在单击树2记录时,请打开Form 2作为详细信息页面。 目前,我已设置树视图序列1正常运行,但仍打开Form 1而不是Form2。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果要指定要使用的视图,则可以添加context属性,并为所支持的每种视图类型指定一个视图ID,就像操作的view_id属性一样:

  

<字段名=“ order_line” colspan =“ 4” nolabel =“ 1” context =“ {'form_view_ref':'module.view_id','tree_view_ref':'model.view_id'}” />

如果您未指定视图,OpenERP将按以下顺序选择一个视图:

  • 它将使用在字段内定义的
    视图(请参见下文)
  • 否则,它将使用该对象具有最高优先级的视图。
  • 最后,它将生成带有所有字段的默认空白视图。

注意

上下文密钥被命名为<view_type>_view_ref

注意

默认情况下,OpenERP将永远不会使用未为您的对象定义的视图。如果您有两个具有相同字段但模型名称不同的模型,则即使一个模型继承了另一个模型,OpenERP也将永远不会将一个视图用于另一个视图。

您可以通过在操作或上下文中手动指定视图来强制执行此操作。

答案 1 :(得分:0)

来自https://subscription.packtpub.com/book/business_and_other/9781789618921/10/ch10lvl1sec104/adding-a-menu-item-and-window-action

您可以使用以下代码:

<act_window id="action_books2"
      name="All books"
      res_model="library.books"
      view_mode="tree,form"
      domain="[--any domain--]"
      context="{'--any context--'}" />

然后为树视图定义操作,为窗体view定义另一个操作:

<record id="action_books2_tree" model="ir.actions.act_window.view">
    <field name="act_window_id" ref="action_books2" />
    <field name="view_id" ref="view_all_books2_tree" />
    <field name="view_mode">tree</field>
    <field name="sequence" eval="2"/>
</record>

<record id="action_all_books2_form" model="ir.actions.act_window.view">
    <field name="act_window_id" ref="action_all_books2" />
    <field name="view_id" ref="view_books2_form" />
    <field name="view_mode">form</field>
    <field name="sequence" eval="2"/>
</record>