我来自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中做过类似的事吗?
提前谢谢。
答案 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常规表单和列表视图不能位于网站前端。