0
例子:Django的:價值分配的相關對象的所有負面效果,節約
user = instance.user
user.updated_at = now()
user.save()
除了「點優化」和「可讀性」,爲好奇的緣故,還有什麼技術原因不喜歡以下嗎?
instance.user.updated_at = now()
instance.user.save()
例子:Django的:價值分配的相關對象的所有負面效果,節約
user = instance.user
user.updated_at = now()
user.save()
除了「點優化」和「可讀性」,爲好奇的緣故,還有什麼技術原因不喜歡以下嗎?
instance.user.updated_at = now()
instance.user.save()
不,這是完全一樣的。 Django將在您首次訪問instance.user
對象時執行SELECT
。該對象的行爲與其他任何行爲相同(對於它使用新的引用無關緊要)。
如果您考慮執行查詢的時刻,可以像對待任何python對象一樣對待模型。
我還有其他的提及,但如果你使用第二種方法,你的'用戶'不會得到更新!聽起來像Django正在緩存實例的'用戶'字段的數據? –
@ShangWang對象將在這兩種情況下更新 – Alvaro
@ShangWang我自己測試過它,第二種方法確實有效,但我有一個印象它沒有起作用,因爲看起來這個引用被丟棄了。 –