簡體   English   中英

只讀Django對象管理器?

[英]Read-only Django object manager?

我正在進行積極的緩存,我想確保沒有人意外地編寫直接更新數據庫的代碼。 我想解決此問題的方法是重命名普通對象管理器.rw_objects以供緩存使用,並用管理器替換.objects ,該管理器會在非更新訪問中記錄警告,如果有人嘗試執行此操作則會引發異常它的更新。

我已經編寫了一個對象管理器和一個查詢集,但不確定如何檢查查詢是否正在更新數據庫。

有什么建議么?

我在這里考慮兩種方法。

  1. 創建一個自定義管理器,覆蓋_insert()_update()以引發異常/記錄查詢,並get_query_set()以返回覆蓋create()get_or_create()update()自定義QuerySet。

  2. 如果您使用的是django 1.2,請在settings.py創建另一個數據庫連接,將其稱為"READ_ONLY" ,然后創建一個使用該連接返回QuerSet的自定義管理器(例如def get_query_set() return super(ReadOnlyManager, self).get_query_set().using("READ_ONLY") ,並將連接標記為只讀(一種方法是為數據庫連接"READ_ONLY"創建只讀用戶....如果您使用的是Postgres,則可以進行操作例如如何在PostgreSQL中創建只讀用戶?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM