我在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 ”取决于网站模块,我想重用视图我进行了扩展,以显示先前显示的表单视图,我执行以下操作:
我创建了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>
我创建一个website.menu导航至视图:
<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>
我在控制器中创建了一个渲染视图的路径:
@http.route('/contacts', auth='user', website=True)
def index(self, **kw):
return http.request.render('my_contact.res_partner_form_inherit')
我签入外部标识符,确认控制器中的路径“ /联系人”执行通过扩展原始视图创建的视图,但是,当我导航至路径“ / contacts ”,其中说: ValueError:未找到网站1中的“ my_contact.res_partner_form_inherit”。
答案 0 :(得分:0)
该错误是因为您无法重复使用Qweb Engine呈现的表单视图,就像将其定义为模板一样。对request.render
的调用旨在呈现模板(qweb视图)。开箱即用,在Odoo中是不可能的