網(wǎng)站開發(fā)如何創(chuàng)建動態(tài)路由?考慮擁有一個“商店”模塊?開發(fā)物品價(jià)格系統(tǒng)查詢網(wǎng)站程序
2023-01-03
動態(tài)路由
在 Odoo 中,控制器用于配置前端模塊。 這些前端模塊與后端模塊集成在一起。 例如,如果想要將銷售訂單的詳細(xì)信息帶到網(wǎng)站上網(wǎng)站開發(fā)網(wǎng)站開發(fā),他們不能使用 Odoo 中的“模型”功能。 但是,他們可以使用控制器從后端獲取銷售訂單詳細(xì)信息。 控制器通過站點(diǎn)銷售、站點(diǎn)博客和站點(diǎn)論壇等模塊擴(kuò)展其功能。 使用控制器網(wǎng)站模板,可以輕松定義任何 URL 和網(wǎng)頁之間的鏈接。
在網(wǎng)站開發(fā)中,需要創(chuàng)建具有動態(tài) URL 的頁面。 例如,在網(wǎng)上商店中,每個產(chǎn)品都有一個鏈接到不同 URL 的唯一產(chǎn)品詳細(xì)信息視圖。
如何創(chuàng)建動態(tài)路由?
考慮擁有一個“商店”模塊并為每個產(chǎn)品添加一個產(chǎn)品頁面。
按照以下步驟為您商店中的選定產(chǎn)品創(chuàng)建詳細(xì)信息頁面。
步驟1:
在“商店”模塊控制器 (main.py) 中為產(chǎn)品詳細(xì)信息頁面創(chuàng)建一個新控制器,如下所示:
@http.route('/store/', type='http', auth="user", website=True)
def product_details(self, product):
values = {
'product': product,
}
return request.render('store.product_details', values)
我們?yōu)楫a(chǎn)品詳情頁面創(chuàng)建了動態(tài)路由。 在這條路線上,我們添加 . 它接受整數(shù) URL 作為 //10。 當(dāng)訪問這個 URL 時,Odoo 將這個整數(shù)視為 . 模型,Odoo 獲取相應(yīng)的數(shù)據(jù)并將其作為參數(shù)傳遞給函數(shù)。 因此,當(dāng)從瀏覽器訪問 //10 時,() 函數(shù)中的參數(shù)將具有 . ID 為 10 的模型。我們采用此產(chǎn)品記錄集并呈現(xiàn)一個名為 . 產(chǎn)品詳情。
路由支持域過濾。 例如網(wǎng)站制作,如果你想有條件地限制某些產(chǎn)品,你可以通過添加到域路由來實(shí)現(xiàn)。 讓我們看看如何限制對 ID 為 5 的產(chǎn)品的訪問:
store/"
Odoo 用于處理 HTTP 請求。 Odoo 支持路由的所有功能。 所以你可以使用類似于以下的路線:
/store/ # 只接受整數(shù)值。
/store/ # 接受選擇的值。
/store/ # 接受字符串值。
/store// # 在一個路由中接受多個值。
第2步:
為產(chǎn)品的詳細(xì)視圖創(chuàng)建新模板
(.xml):
我們創(chuàng)建了一個名為 QWeb 的新 QWeb 模板,用于呈現(xiàn)產(chǎn)品詳細(xì)信息頁面。 這是一個簡單的產(chǎn)品描述頁面。在這個頁面上,我們添加了一些動態(tài)
和標(biāo)簽。 所以我們可以使用傳遞的id來使用商品詳情頁的內(nèi)容。
第 3 步:
將鏈接或按鈕添加到商店的當(dāng)前視圖。 單擊該按鈕會將您重定向到產(chǎn)品的詳細(xì)視圖。
Goto Product
然后您將在商店中看到轉(zhuǎn)到按鈕。 單擊它將打開相關(guān)的產(chǎn)品詳細(xì)信息。