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 обычные формы и списки не могут быть в веб-интерфейсе.

Другие вопросы по тегам