我想使用Django的管理員瀏覽和現有的數據庫,但我想確保我或Django不會對此數據庫做任何修改。如何在您擁有隻讀訪問權限的現有數據庫上實現django admin?
由於這個原因,我認爲我應該使用兩個數據庫,一個是隻讀的數據庫,另一個會存儲其他django表,其中一個是我擁有讀寫訪問權限的數據庫。
我知道如何在settings.py
中定義多個數據庫,但我不知道如何強制django爲特定模型使用另一個數據庫。
我想使用Django的管理員瀏覽和現有的數據庫,但我想確保我或Django不會對此數據庫做任何修改。如何在您擁有隻讀訪問權限的現有數據庫上實現django admin?
由於這個原因,我認爲我應該使用兩個數據庫,一個是隻讀的數據庫,另一個會存儲其他django表,其中一個是我擁有讀寫訪問權限的數據庫。
我知道如何在settings.py
中定義多個數據庫,但我不知道如何強制django爲特定模型使用另一個數據庫。
您可以使用Automatic database routing
配置每個模型
或者
讀/寫操作數據庫,還可以自定義讀/寫操作的數據庫管理員(Exposing multiple databases in Django's admin interface)接口與查詢集的using
說法。
在這兩種情況下,將讀/寫數據庫設置爲默認值(將保存django模型)並將查詢顯式路由到您的模型的只讀數據庫。
作爲manji
的答案的補充 - 您也可以使用數據庫視圖並將某些表作爲只讀表。在Django中使用VIEW是一種功能強大的技術,可以將複雜的查找作爲Django模型進行展示。
就你而言,你可以例如創建額外的數據庫,使用VIEWs鏡像原始數據庫中的相關表,並創建額外的Django項目,並且只爲這些表啓用管理員或者沿着這些行(您知道您的用例比我更好)。