我在稱爲狀態的模型中設置了InteferField。我有一個方法是兩個切換兩行狀態的值。Django .save()還原
Row one -> status = 1
Row two -> status = 2
現在,我想,如果我轉一個人的地位排在一定高不可攀距離(99)我可以使用,作爲中間人來切換兩排,然後切換一行。
Get status = 1 -> Row one
Get status = 2 -> Row two
Set Row one -> status = 99
Save Row one
Set Row two -> status = 1
Save Row two
Get status = 99 -> Row one
Set Row one -> status = 2
Save Row one
奇怪的是,數據還原。如果我只是將第一行的狀態更改爲99,則它將更改爲99,稍後會恢復到其原始值。我們不知道爲什麼會發生這種情況,但事實證明,沒有任何東西來自這個。
original = 1
swap = 2
originalCase = Case.objects.get(queue_num = original)
#swapCase = Case.objects.get(queue_num = swap)
originalCase.queue_num = 99
originalCase.save()
#swapCase.queue_num = original
#swapCase.save()
#originalCase = Case.objects.get(queue_num = 99)
#originalCase.queue_num = swap
#originalCase.save()
return HttpResponse(Case.objects.filter(queue_num__gt=0).order_by('queue_num'))
是因爲我們查詢速度很快而且沒有及時更新下一次更新?或者我的邏輯存在缺陷?
Woops,對不起,這是我們的代碼。但我也運行了編輯過的代碼,它仍然恢復。 – tlunter 2011-05-23 20:58:10
我認爲你的代碼需要更多的上下文。根據你發佈的內容,它不應該再「回覆」。 – 2011-05-23 21:16:25
正是我們爲什麼感到困惑。我們只運行那個單一功能。那是完整的功能。我們做這個請求,就是這樣。該選項卡保持打開狀態。但是在HttpResponse之後,什麼都不應該發生。 – tlunter 2011-05-23 21:23:28