定义操作窗口时view_type和view_mode之间的区别?

时间:2017-04-01 16:36:31

标签: openerp odoo-8 odoo-view

在定义act_window时,每个属性值的含义是什么,例如;

 <record id="open_estimate_quantity_extra_request" model="ir.actions.act_window">
   <field name="name">Extra Requests</field>
   <field name="res_model">estimate.quantity.extra.request</field>
   <field name="view_type">form</field>
   <field name="view_mode">tree,form</field>
 </record>

在上面的代码中,form的值为view_typetree,form的值为view_mode是什么意思。据我所知,view_mode告诉odoo显示estimate.quantity.extra.request模型的树视图和表单视图。但view_type的目的是什么?

2 个答案:

答案 0 :(得分:2)

嗯,基本上,视图模式显示了从菜单项或任何其他项加载后,特定模型的树/表单视图右上角的视图切换器中可用的视图的顺序和数量方式。

如果你将视图模式设置为树,那么将显示第一个树视图,然后单击其中一个记录后将打开表单视图,序列也将与第一个树相同,然后形成在视图右上角的视图切换器中从左到右查看。

但是视图类型意味着如何打开记录,意味着如果将其设置为表单,那么当您单击树视图中的某个记录时,如果您创建新记录,它将在窗体视图中打开将打开一个空的表单视图,

但是如果视图类型设置为树,那么当您单击该记录时,它将不会在表单视图中打开,并且当您创建新记录时,它将在树视图中创建为新行

答案 1 :(得分:1)

view_mode,如果定义视图模式列表和序列:

<field name="view_mode">tree,form,graph,...</field>

但是当你选择树时,查看type_type有两个(树或形式),你可以制作一个特殊的分层树最好的例子

enter image description here

但是当您将type_view从树更改为form时,无法看到所有子记录:

enter image description here

view_type它用于层次结构树视图,请参阅帐户模块以查看您需要计算级别字段的方式,并且您需要一个one2many字段子记录集

参见模型_name = "account.financial.report"

[编辑]: 关键在于树和动作

<record id="view_account_report_tree_hierarchy" model="ir.ui.view">
    <field name="name">account.report.hierarchy</field>
    <field name="model">account.financial.report</field>
    <!-- this field one2many field and the compute field level -->
    <field name="field_parent">children_ids</field>
    <field name="arch" type="xml">
        <tree string="Account Reports Hierarchy">
            <field name="name"/>
            <field name="type"/>
            <field name="parent_id" invisible="1"/>
            <field name="account_report_id"/>
        </tree>
    </field>
</record>