odoo автоматически генерирует модель в контроллере
Я из мира фреймворка Python Django, и мне интересно, возможно ли в контроллере odoo визуализировать модель-форму, как в Django. Например:
class PartnerController(http.Controller):
@http.route('partner/create')
def create_form(self, **kw):
model = request.registry['res.partner']
form = auto generate html form view for the model
return form
Или, может быть, способ автоматически показать уже существующий ir.ui.view
на сайте с контроллера.
Идея состоит в том, чтобы повторно использовать уже определенные представления и / или не переписывать представления для каждой модели каждый раз.
Я уже знаю о сборщике сайтов, но я хочу что-то, что будет легко добавить в модуль.
Кто-то уже делает что-то подобное в odoo8/9?
Заранее спасибо.
1 ответ
Контроллеры Odoo могут запрашивать данные, а затем отображать шаблоны, используя эти данные. Это делается с помощью:
return request.website.render("<XMLId-for-my-QWeb-view", {<data dict>})
В качестве примера вы можете проверить страницу веб-сайта со списком вакансий:
# Render page
return request.website.render("website_hr_recruitment.index", {
'jobs': jobs,
'countries': countries,
'departments': departments,
'offices': offices,
'country_id': country,
'department_id': department,
'office_id': office_id,
})
Затем словарь данных можно использовать в шаблоне QWeb для визуализации. В этом примере используется шаблон website_hr_recruitment.index.
Обратите внимание, что вы должны использовать представления QWeb. AFAIK обычные формы и списки не могут быть в веб-интерфейсе.