在这篇博客中,我们将讨论如何从后台添加新项目到Odoo网站的主页。在Odoo 12的社区版中,Odoo帮助我们通过拖放在主页上为各种构建块添加一个选项。
在这里,我们可以考虑在Odoo网站的主页上显示我们公司所有产品的示例。
我们可以通过许多方式做到这一点,总是记住,如果我们替换或把我们的自定义页面放在Odoo主页的当前布局中,那么我们不能添加自定义块,这是Odoo本身提供的功能。因此,总是尝试将自定义视图放在当前布局的后面或前面。
在. py
为了将我们的自定义细节从后端添加到Odoo网站的主页,我们必须继承主页的控制器功能,我们可以添加自定义代码从后端检索我们需要的细节。
def index(self, **kw): super(Website, self).index()返回http.request。呈现(“< template_external_id >”,{数据})
在xml
我们必须像下面这样扩展主页布局的模板
<模板id = " new_homepage " inherit_id = " website.homepage”>
< /模板>
如果我们想在我们的自定义视图中添加一个隐藏/显示选项,那么我们可以在我们的网站的“自定义”菜单中添加这个选项,只需添加以下代码。
<模板id = " new_homepage " inherit_id = "网站。主页“customize_show = " True " >
< /模板>
如果我们想在加载网站的时候使它活跃,只需尝试以下代码。
<模板id = " new_homepage " inherit_id = "网站。主页“customize_show =“真正的“积极= " True " >
< /模板>
我们可以考虑一个将所有处于已发布状态的产品显示到odoo网站首页的例子。
在. py
从doo.addons.portal.controllers.web导入
从odoo导入HTTP
从odoo。http导入请求
类WebsiteSort(家):
@http.route ()
def指数(自我,* *千瓦):
超级(WebsiteSort自我).index ()
website_product_ids = request.env [' product.template ']。搜索(((‘is_published’,‘=’,真的)))
返回request.render(“网站。主页”,{
“website_product_ids”:website_product_ids
})
在xml
<?xml version = " 1.0 " encoding = " utf - 8 " ?>