1 回答

TA貢獻1829條經驗 獲得超4個贊
根據您對每種藥物都用一個頁面表示的要求,并且如果您確實打算在中長期使用 Wagtail,我建議每種藥物都是頁面模型。
這是因為您將獲得能夠向用戶展示這一點、提供搜索、API 和 UI 編輯功能而沒有任何麻煩的所有好處。
然而,下一個決定涉及是否將所有這些都放在一個父頁面模型下,或者還將層次結構存儲在頁面模型中。
如果您知道層次結構在五個深度級別上將非常嚴格,并且每個深度都有特定的名稱和商定的定義,那么最好將這些“級別”也編碼到模型中。請注意,每個藥物頁面的 url 將默認為url.com/level-1/level2-/..../insulin
而不是類似url.com/medications/insulin
.
然而,通過RoutablePageMixin也可以很容易地使每種藥物在 Url 樹中的某個固定(非嵌套)點可用。然而,如果您希望規范 URL 是這種非嵌套變體,您可能會發現自己與 Wagtail 進行了少量的斗爭。這樣做的好處是,您只需通過內置的頁面瀏覽器(管理菜單)導航,就可以在樹的正確位置找到胰島素頁面。
換句話說,仍然可能值得將層次結構存儲為頁面模型,但藥物頁面模型本身將是其他某個中心頁面的子級。這為您提供了每種藥物的更簡單的規范 URL,但也意味著每個級別的頁面都可以使用 RoutablePageMixin 來授予對其后代子代的訪問權限。這種方法的缺點是管理編輯界面不會直接反映藥物頁面的層次結構。
然而,在有 50,000 個條目時,編輯交互將需要一些調整和替代方法來查找頁面。
例如
家
... 級別
...... A1(等)
...藥物
...... 胰島素
聯系方式(其他雜項頁面也將在主頁下)
這里可能沒有“正確”的答案,您可能會發現最好設置一些頁面和鏈接的編程創建(或類似于固定裝置的東西),然后兩種方式都做,并在您的 Beta Wagtail 實例中設置兩個站點。通過這種方式,您可以了解編輯的感覺,讓您的團隊有機會參與并設置 API。最后,無論哪種方式,您最終都需要在頁面模板和模型方面非常相似的代碼。
添加回答
舉報