[英]Read-only Django object manager?
我正在進行積極的緩存,我想確保沒有人意外地編寫直接更新數據庫的代碼。 我想解決此問題的方法是重命名普通對象管理器.rw_objects
以供緩存使用,並用管理器替換.objects
,該管理器會在非更新訪問中記錄警告,如果有人嘗試執行此操作則會引發異常它的更新。
我已經編寫了一個對象管理器和一個查詢集,但不確定如何檢查查詢是否正在更新數據庫。
有什么建議么?
我在這里考慮兩種方法。
創建一個自定義管理器,覆蓋_insert()
, _update()
以引發異常/記錄查詢,並get_query_set()
以返回覆蓋create()
, get_or_create()
和update()
自定義QuerySet。
如果您使用的是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.