повторное использование формы, дерева, канбана в модуле сайта - PullRequest
0 голосов
/ 16 октября 2018

Я работаю в 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 , я хотел бы повторно использовать свои представлениярасширен, чтобы показать вид формы, показанный ранее, я делаю следующее:

  1. Я создаю веб-сайт. 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. Iсоздайте 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>
    
  3. Я создаю путь в контроллере для отображения представления:


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

Я проверяю во внешних идентификаторах, что путь ' / contacts ' в контроллере выполняет созданное мной представление, расширяя исходное представление, однако при переходе к пути ' /контакты 'там написано: ValueError: Просмотр' my_contact.res_partner_form_inherit 'на веб-сайте 1 не найден.

1 Ответ

0 голосов
/ 17 октября 2018

Ошибка в том, что вы не можете повторно использовать представление формы, которое будет отображаться с помощью Qweb Engine, как если бы оно было определено как шаблон.Вызов request.render предназначен для рендеринга шаблонов (qweb views).Это невозможно в Odoo из коробки

...