在网站模块中重用表单、树、看板视图



我在odoo-11中工作,我创建了一个模块my_contact,我从res.partner扩展以添加我需要的字段,如facebookId,emailVerified,maritalState等,并且我修改了视图表单,树等,以显示新字段这是扩展表单视图的示例:

<record id="res_partner_form_inherit" model="ir.ui.view">
<field name="name">My Contact Form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="vat" position="before">                    
<field name="marital_state"/>
</field>
<field name="email" position="before">
<field name="facebook_id"/>
</field>
<field name="email" position="after">
<field name="email_verified"/>
</field>
</field>
</record>

到这里来,好吧。我需要创建一个显示所有联系人的网站,为此我指定我的模块">my_contact"取决于网站模块,我想重用我扩展的视图,以显示之前显示的表单视图,我执行以下操作:

  1. 我创建 website.page:

    <record id="contact_index_page" model="website.page">
    <field name="name">Contact Index Page</field>
    <field name="website_published">True</field>
    <field name="url">/contacts</field>
    <field name="view_id" ref="res_partner_form_inherit"/>
    </record>
    
  2. 我创建了一个网站菜单来导航到视图:

    <record id="my_contact_menu" model="website.menu">
    <field name="name">Contacts</field>
    <field name="page_id" ref="contact_index_page"/>
    <field name="parent_id" ref="website.main_menu"/>
    </record>
    
  3. 我在控制器中创建一个路径来呈现视图:


@http.route('/contacts', auth='user', website=True)
def index(self, **kw):
return http.request.render('my_contact.res_partner_form_inherit')

我在外部标识符中检查控制器中的路径"/contacts"执行我通过扩展原始视图创建的视图,但是,当我导航到路径">/contacts"时,它说:值错误:在网站 1 中查看"my_contact.res_partner_form_inherit"。

该错误是因为您无法重用表单视图以使用 Qweb Engine 进行呈现,就好像它被定义为模板一样。request.render它旨在呈现模板(qweb 视图(的调用。在Odoo中不可能开箱即用

最新更新