Я пытаюсь унаследовать веб-контроллер 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 вызывается view 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>
Кто-то знает, как наследовать контроллер, добавить новое поле и показать его в представлении? Спасибо за чтение!