2

我来自 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 中做了类似的事情?
提前致谢。

4

1 回答 1

3

Odoo 控制器可以查询数据,然后使用该数据呈现模板。这是使用以下方法完成的:

return request.website.render("<XMLId-for-my-QWeb-view", {<data dict>})

例如,您可以查看Job List网站页面:

    # 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 常规表单和列表视图不能在网站前端。

于 2016-04-28T13:02:38.883 回答