OpenERP始终显示继承的视图而不是原始视图

原始观点:

<record id='view_1' model='ir.ui.view'>
    <field name="name">view.name</field>
    <field name="model">my.object</field>
    <field name="priority" eval="17"/>
    <field name="type">form</field>
    <field name="arch" type="xml">
        ...
    </field>
</record>

从原来继承的观点:

<record id='view_2' model='ir.ui.view'>
    <field name="name">view.name</field>
    <field name="model">my.object</field>
    <field name="priority" eval="10"/>
    <field name="inherit_id" ref="view_1"/>
    <field name="type">form</field>
    <field name="arch" type="xml">
        ...
    </field>
</record>

所以会发生什么是OpenERP总是显示忽略优先级值的继承视图.这是预期的行为,还是我缺少的其他东西?

如果这是预期的行为,请进一步阅读:-)

我有my.second.object和my2object的many2one字段,当我想从这个字段创建my.object时,我想打开my.object的一个不同的窗体视图.我正在尝试为此目的创建一个不同的视图,但正如你所看到它不那么容易(或者是吗?).

任何帮助表示赞赏.

是的,这是预期的行为.视图的优先级仅用于选择在未请求特定视图时使用的主视图.继承视图是“补丁视图”,其行为类似于它们继承的视图的子视图,并且可能永远不会被选为“主视图”.在显示该视图时,它们始终应用于父视图之上.

如果您想要某个模型的替代视图,您应该定义一个不会从任何其他模型继承的新独立视图.如果该视图仅用于my.second.object视图的上下文中,则有两个常见的技巧可以让OpenERP使用它:

>在my.second.object的表单视图中将其定义为内联,作为< field>的子项.元件.这可能不适用于所有OpenERP客户端,具体取决于版本,并且通常用于为o2m行声明内联表单视图.
>将其声明为具有低优先级的独立视图(例如32),并在my.second.object视图的many2one字段中放置魔术上下文密钥,该视图应使用它.魔术键的形式为< view_type> _view_ref,值必须是所需视图的XML ID.这应该适用于所有地方

<!-- Example 1: inline form view -->
<form string="My second object">
   <field name="my_object_id">
       <form string="My object inline view">
           <field name="name"/>
       </form>
   </field>
 </form>

<!-- Example 2: explicitly ask for special view using magic key -->
<form string="My second object">
   <field name="my_object_id" context="{'form_view_ref': 'module.my_object_form2'}"/>
</form>

作为参考,请查看this page OpenERP文档,该文档解释了制作和使用特定于上下文的视图的大多数选项.

NOTE: If you have used form_view_ref and from form view if you have any button which is opening another form view of some other model then it will give you error . It will try to open the same form view you have passed in form_view_ref for another model also.

相关文章
相关标签/搜索