爲了澄清,我有幾千個屬性項目,每個都有一個'present'字段(等等)。要重置系統以再次使用,我需要將每個項目的「屬性」字段設置爲false。現在,當然還有最簡單的方式做到這一點,這就是:如何快速設置一個Django模型的所有實例的字段?
for obj in Property.objects.all():
obj.present = False
obj.save()
但是,這需要近30秒我的開發服務器上。我覺得必須有一個更好的辦法,所以我試圖用限制Django的only
查詢集加載的字段:
for obj in Property.objects.only('present'):
obj.present = False
obj.save()
無論出於何種原因,這其實需要更長比剛開整個對象。
因爲我需要將所有這些值不加區分地設置爲False,有沒有更快的方法?除了'go do it'命令之外,這個函數沒有用戶輸入,所以我覺得一個原生的SQL命令是一個安全的選擇,但我不知道SQL足以起草這樣的命令。
謝謝大家。
如何更新? 'Property.objects.all()。update(present = False)' – karthikr 2014-08-27 17:50:29