网站开发如何创建动态路由?考虑拥有一个“商店”模块?开发物品价格系统查询网站程序
2023-01-03
动态路由
在 Odoo 中,控制器用于配置前端模块。 这些前端模块与后端模块集成在一起。 例如,如果想要将销售订单的详细信息带到网站上网站开发网站开发,他们不能使用 Odoo 中的“模型”功能。 但是,他们可以使用控制器从后端获取销售订单详细信息。 控制器通过站点销售、站点博客和站点论坛等模块扩展其功能。 使用控制器网站模板,可以轻松定义任何 URL 和网页之间的链接。
在网站开发中,需要创建具有动态 URL 的页面。 例如,在网上商店中,每个产品都有一个链接到不同 URL 的唯一产品详细信息视图。
如何创建动态路由?
考虑拥有一个“商店”模块并为每个产品添加一个产品页面。
按照以下步骤为您商店中的选定产品创建详细信息页面。
步骤1:
在“商店”模块控制器 (main.py) 中为产品详细信息页面创建一个新控制器,如下所示:
@http.route('/store/', type='http', auth="user", website=True)
def product_details(self, product):
values = {
'product': product,
}
return request.render('store.product_details', values)
我们为产品详情页面创建了动态路由。 在这条路线上,我们添加 . 它接受整数 URL 作为 //10。 当访问这个 URL 时,Odoo 将这个整数视为 . 模型,Odoo 获取相应的数据并将其作为参数传递给函数。 因此,当从浏览器访问 //10 时,() 函数中的参数将具有 . ID 为 10 的模型。我们采用此产品记录集并呈现一个名为 . 产品详情。
路由支持域过滤。 例如网站制作,如果你想有条件地限制某些产品,你可以通过添加到域路由来实现。 让我们看看如何限制对 ID 为 5 的产品的访问:
store/"
Odoo 用于处理 HTTP 请求。 Odoo 支持路由的所有功能。 所以你可以使用类似于以下的路线:
/store/ # 只接受整数值。
/store/ # 接受选择的值。
/store/ # 接受字符串值。
/store// # 在一个路由中接受多个值。
第2步:
为产品的详细视图创建新模板
(.xml):
我们创建了一个名为 QWeb 的新 QWeb 模板,用于呈现产品详细信息页面。 这是一个简单的产品描述页面。在这个页面上,我们添加了一些动态
和标签。 所以我们可以使用传递的id来使用商品详情页的内容。
第 3 步:
将链接或按钮添加到商店的当前视图。 单击该按钮会将您重定向到产品的详细视图。
Goto Product
然后您将在商店中看到转到按钮。 单击它将打开相关的产品详细信息。