假設我有一些Django的模型,我更新實例更新中,只有當它需要更新
def modify_thing(id, new_blah):
mything = MyModel.objects.get(pk=id)
mything.blah = new_blah
mything.save()
我的問題是,如果它發生了,這已經是情況mything.blah == new_blah
一個Django模型場,django是否知道這一點,並不打擾再次保存這個[非]修改?或者它會一直進入數據庫(在我的情況下是MySQL)並更新數據?
如果我想避免不必要的寫操作,這有任何意義,做這樣的事情:
if mything.blah != new_blah:
mything.blah = new_blah
mything.save()
鑑於該記錄將不得不從數據庫中讀取反正爲了做的比較第一名?這種構造是否有效?如果是這樣的話,是否有比Python中的if語句更難看的方法?
你可以看看正在執行的SQL語句,並從那裏進行優化? – nathancahill
您可以覆蓋模型類中的保存方法,以檢查每次保存方法標識爲 –