zoukankan      html  css  js  c++  java
  • OpenERP为form和tree视图同时指定view_id的方法

    OpenERP为form和tree视图同时指定view_id的方法

    本文所说的是关于OpenERP中同一个对象(同名继承)使用view_id来指定form和tree视图的方法,由于官方文档中Views and Events那一节没有提到,但是实际项目中会用到,所以在此记录并分享!

    官方文档中提到,有两种情况我们也许会指定一个view而不是用默认的那个:

    • 一个对象有几个form或tree视图
    • 想用一个关系字段(例如o2m)来改变form或tree视图

    紧接着文档介绍了priority字段

    在视图的定义中我们可以使用priority字段,它的默认值是16.默认情况下,OpenERP会使用带有最高优先级(也就是最小数字)的tree视图来显示一个model。

    ok,如果是刚接触OpenERP,乍一看貌似能解决不少问题,可是情况却不一定,因为有一行加粗的字写到:

     It will always use the second one, because it has a higher priority ! Unless you tell it to use the first one !

    什么叫“除非你告诉它要用第一个(视图)”?难道我不能理解为the first one被废弃了?

    好吧,我们看一下如何为每个action指定view?在ir.actions.act_window中使用字段view_id,ref的值为指定的view 的id。当然了,如果你想指定一个在别的模块中定义的view,那么要记得加上模块名(即module.view_id)。

    对于这个字段的功能,看起来听不错的,直接指定id,而不用去安排什么优先级,何况文档也没介绍低优先级的view怎么去使用。那么对于一个同名集成的model,由于已经存在各种视图(form/tree/kanban etc.),而我们在定制过程中想改变form和tree视图,怎么办?并且我们在view_mode中明明指定tree在前,为啥不起作用呢?

    通过google找到了答案:

    有一个model叫 ir.actions.act_window.view,我们可以使用它来完美解决问题。我们定义一个record中仅包含4个field即可:

    • <field name=”sequence” eval=”1″/>
    • <field name=”view_mode”>form</field>
    • <field name=”view_id” ref=”module.view_id”/>
    • <field name=”act_window_id” ref=”your act_window id”/>

    如此而已!

    (完)

    本条目发布于2014年1月14日。属于OpenERP开发分类,被贴了 标签。作者是

  • 相关阅读:
    Jquery zTree 插件实现简单的省市下拉
    requestAnimationFrame
    浏览器请求与域名的关系
    斐波那契数列 算法实现
    重置 bootstrap-fileinput
    Python 不定长参数 *args, **dictargs
    IPMITOOL常用操作指令
    IPMI 配置BMC用户设置
    图床折腾记
    [算法总结] 20 道题搞定 BAT 面试——二叉树
  • 原文地址:https://www.cnblogs.com/luojiao-lx/p/3837312.html
Copyright © 2011-2022 走看看