odoo自动生成控制器中的模型形式

时间:2016-04-28 10:18:23

标签: odoo odoo-8 odoo-view odoo-website

我来自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 个答案:

答案 0 :(得分: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常规表单和列表视图不能位于网站前端。