view_ids字段的odoo 8 XML语法是什么

时间:2016-02-16 14:57:49

标签: openerp odoo-8

我正在尝试自定义crm lead对象。类是以这种方式定义的

class yvleads(models.Model):
 _inherit = 'crm.lead'
 _name = 'crm.lead'

现在我添加了一个菜单项来显示添加的元素,我有树视图和窗体视图。我添加了一个介绍ir.actions.act_window的lett菜单项。当此操作定义为

 <record model="ir.actions.act_window" id="yvleads_mgt">
     <field name="name">Leads Yves</field>
     <field name="res_model">crm.lead</field>
     <field name="view_type">form</field>
     <field name="view_mode">form,tree</field>
     <field name="view_id" ref="tree_view_yves_leads"/>
 </record>

这适用于列表树视图,但是当我点击任何项目或创建按钮时,我会获得crm的默认表单视图。

要为表单添加自定义视图,我对odoo documentation的理解是我应该使用view_ids元素,但我无法正确使用

我使用eval =&#34;&#34;尝试了几种带/不带括号的语法。或者在xml定义中但没有成功。在此论坛中搜索字符串名称=&#34; view_ids&#34;不是很好,可能这不是最好的做法吗?任何帮助赞赏

<record model="ir.actions.act_window" id="yvleads_mgt">
     <field name="name">Leads Yves</field>
     <field name="res_model">crm.lead</field>
     <field name="view_type">form</field>
     <field name="view_mode">form,tree</field>
     <field name="view_ids">(tree,tree_view_yves_leads),(form,form_view_yves_leads)</field>
        </record>

3 个答案:

答案 0 :(得分:0)

当您点击与该操作相关的菜单时,您在操作中使用的 view_id 仅对有效

使用需要的是view inheritance,即您需要重新定义现有视图:

    <record id="new_view" model="ir.ui.view">
        <field name="name">new view</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm_lead.existing_view_id"/>
        <field name="arch" type="xml">
            <data>
            ...
            </data>
        </field>
    </record>

data 标记内,您可以按照提供的链接中的说明完成所需的修改。

理论上你也可以改变整个视图,但如果其他模块继承了相同的视图,这可能会有问题。

这样每次以任何方式打开 crm.lead 模型时,都会使用您的视图。

顺便说一句,view_ids的正确语法是:

<field name="view_ids" eval="[(6, False, [ref('view_id_1'), ref('view_id_2')])]">

答案 1 :(得分:0)

答案 2 :(得分:0)

这是正确的语法:

<field name="view_ids"
                   eval="
                            [
                            (5, 0, 0),
                            (0, 0, {'view_mode': 'tree', 'view_id': ref('tree_external_id')}),
                            (0, 0, {'view_mode': 'form', 'view_id': ref('form_external_id')}),
                          ]"
            />