2010-01-26 91 views
0

任何關於如何在每次訪問時更新模型數據的指針?Django - 訪問前更新模型數據?

如果我有訪問像這樣一個Person對象代碼: P = Person.objects.get(用戶名=「darkpixel」)

我想火過我自己的過程中,以檢查外部網站,可能在返回之前更新Person模型。

我很猶豫要重寫get方法。有沒有更好的辦法?

回答

1

該代碼絕對屬於您的Manager。我不會覆蓋get,但我會創建一個名爲get_and_resync的函數來爲您完成這項工作。

+0

這是我用我的原型走向的方向,它似乎運作良好 - 我只需要確保導入我的應用程序的所有項目偶爾調用get_and_resync ...我想到的另一個選項並不擔心調用get_and_resync的項目,而是有一個manage.py命令,該命令可以慢慢瀏覽數據庫並將其更新爲必要的...... – 2010-01-26 03:26:48

+0

在做了更多的挖掘之後,我偶然發現了一些我不知道的經理人的有趣事情。如果您創建了get_query_set函數,則可以通過Person.objects.all或Person.objects.get定義用於查找數據的初始查詢集。這使得在返回對象之前攔截和更新對象變得很容易。 – 2010-01-26 03:52:53

0

將模型上的字段設置爲properties

+0

有沒有辦法做到這一點,而無需改變現有的代碼依賴(使用您的鏈接示例)Person.first_name? 我想要得到的結果是從我的數據庫支持模型訪問數據,但偶爾會從遠程Web服務檢查Person的更新。 – 2010-01-26 03:23:24

+0

屬性通常不需要更改現有的代碼,所以我不確定你在這裏問什麼...... – 2010-01-26 03:25:06