我對這個主題的搜索導致了有關使用sql處理來自模型的數據的答案,但是我想要做的是有效地創建一些行爲類似於其他模型的東西Django,但基於包含JOIN的自定義查詢。根據JOIN查詢創建一個Django模型
在Microsoft Access中,表單和報表可以基於查詢集,就像在表上一樣容易,至少有些時候這些記錄集可以更新。
我希望能夠使用django的所有功能,但基礎模型能夠基於查詢。可以這樣做嗎?
我對這個主題的搜索導致了有關使用sql處理來自模型的數據的答案,但是我想要做的是有效地創建一些行爲類似於其他模型的東西Django,但基於包含JOIN的自定義查詢。根據JOIN查詢創建一個Django模型
在Microsoft Access中,表單和報表可以基於查詢集,就像在表上一樣容易,至少有些時候這些記錄集可以更新。
我希望能夠使用django的所有功能,但基礎模型能夠基於查詢。可以這樣做嗎?
創建一個可以從數據庫視圖中讀取的模型很容易 - 如果這涵蓋了您的需求,我可以告訴您如何做到這一點。創建一個可寫入數據庫視圖的模型需要您的數據庫後端接受對視圖的寫入,並且我不知道任何支持該視圖的數據庫後端。我想可能有一個我不知道。 –
如有需要,我可以編寫更新,刪除或插入的代碼。我使用的是postgresql,所以我認爲我可以在視圖上創建觸發器函數,在試圖更新我需要修改的視圖的列時激活它。我從來沒有嘗試過,但我認爲這是可能的。然而,這會隱藏在數據庫中的實現,可能在python中,而不是在django中它應該在models.py – rayjay
如果我要把代碼放在模型中,那麼我想我需要:1)一個函數每次django執行SELECT查詢時都會運行。 2)使我的特殊模型字段在使用時返回列值的方法。 3)攔截和實現對各個值的更新或對寫入數據庫的任何操作的一些總體攔截的方法。我還需要模擬我在字段中沒有實現的操作的正確例外 – rayjay