Как наследовать и настраивать контроллер в Odoo V12

Я пытаюсь унаследовать веб-контроллер Odoo для добавления нового параметра для его использования в представлении, но я не могу этого сделать.

Это метод класса, который мне нужно унаследовать для рендеринга представления:

class CustomerPortal(Controller):
@route(['/my', '/my/home'], type='http', auth="user", website=True)
    def home(self, **kw):
        values = self._prepare_portal_layout_values()
        return request.render("portal.portal_my_home", values)

Это представление, в котором мне нужно добавить настраиваемое поле:  введите описание изображения здесь

Итак, это моя попытка, и у меня не было ошибок, но тоже ничего не происходит. Мой проверенный контроллер (я тоже пытался поставить объявление @route как @route ()):

class websiteContact(CustomerPortal):
    @http.route('/my/home', type='http', auth="user", website=True)
    def home(self): 
        response = super(websiteContact, self).home() 
        if self.env.user.id != SUPERUSER_ID:
            response['isAdmin'] = False 
        else:
            response['isAdmin'] = True
        return response

Мой проверенный вид:

// Представление portal.portal_contact вызывается представлением portal.portal_my_home

<template id="website_contact_template" inherit_id="portal.portal_contact">
    <xpath expr="//div[@class='o_portal_contact_details mb-5']" position="inside">
            <t t-esc="isAdmin"/>
    </xpath>
    </template>

Кто-то знает, как унаследовать контроллер, добавить новое поле и показать его в представлении? Спасибо за прочтение!


person arevilla009    schedule 30.03.2020    source источник


Ответы (1)


Контроллер Добавьте свою логику настройки в этот метод _prepare_portal_layout_values.

Спасибо

person Dipen Shah    schedule 30.03.2020