尋找一種有效的方法來檢查db.Model
的特定屬性是否已更改,而不是putting
之前存儲在數據存儲中的版本。顯然,我想避免從數據庫中獲得新的實例!可能嗎?事情是這樣的:檢測實體的特定屬性是否在「放置」實體時發生了變化?
class MyClass(db.Model):
prop = db.StringProperty()
instance = MyClass()
instance.string_property = 'string'
instance.put()
instance2 = db.get(instance.key())
instance2.string_property = 'string2'
instance2.put() #would like to detect that string_property was altered!
我認爲這是一個壞主意。如果你看看db的代碼(你現在真的應該使用ndb),那麼每個屬性/模型都有很多內容(元類在這裏被大量使用),並且取決於類/屬性和/或值被分配你可能會開始得到一些真正奇怪的行爲和/或錯誤。你應該考慮使用鉤子(一些想法http://blog.notdot.net/2010/04/Pre-and-post--put-hooks-for-Datastore-models)或切換到ndb並使用它的前/後鉤。 –
我在這個模型上使用鉤子 - 我將如何使用它們來檢測特定屬性的更新? – HorseloverFat
@蒂姆霍夫曼 - 如果你用Nick的博客作出答案,可以使用Nick的博客,這可能是我接受的解決方案,我認爲:-) – HorseloverFat