我正在發出一個返回序列化數據的請求。我遍歷數據並檢查它是否存在於數據庫中。如果存在則被忽略,如果不存在則保存。我遇到的問題是for循環僅保存第一條記錄,即使它遍歷數據的所有鍵並將其與數據庫中的內容進行比較。我的代碼如下:保存for循環的每次迭代
b = MyModel()
data #The serialized data
existingData = Off.object.filter(...)
for key in data:
if existingData.filter(id_str=key['id_str']).exists():
pass #If I place a print key['id_str'] here, all skipped items are printed.
else:
b.x = key['x']
b.y = key['y']
b.save()
函數運行一個計數器每次被放置在else語句的底部b.save()
後的計數器增加,但只有通過檢查的第一個記錄是保存和的休息數據中的項目不會被保存。我哪裏錯了?
你怎麼知道問題不在'MyModel.save'中? – mgilson
有什麼方法可以檢查嗎?當我第一次寫這個只是爲了測試它,我得到的數據回3次,並保存所有的鍵3次。現在我只保存1 :-( –
接受一些其他的答案,然後我們會幫你的。 –