Short Question
連接到PostgreSQL數據庫時,從Django過濾器調用返回的列表的默認順序是什麼?從Django過濾器調用返回的列表的默認順序是什麼?
背景
通過我自己也承認,我有提出在應用一個糟糕的假設層,在其返回一個列表中的順序將是常數,即不使用「ORDER_BY」。我查詢的項目列表不是按照字母順序或其他任何故意的順序。它被認爲保持與它們被添加到數據庫中的順序相同。
這種假設數百查詢召開真實的,但一個故障報告了我的應用程序時的順序不知不覺改變。據我所知,在這段時間內沒有任何這些記錄被觸動,因爲我是維護數據庫的唯一人員。爲了增加混淆,在Mac OS X上運行Django應用程序時,它仍然按預期工作,但在Win XP上,它改變了順序。 (請注意,提到的數百個查詢是在Win XP上)。
任何有識之士這將是有益的,因爲我無法找到解釋操作系統的差異的Django或PostgreSQL文檔中的任何東西。
如通話
required_tests = Card_Test.objects.using(get_database()).filter(name__icontains=key)
編輯
一些同事我的今天來說,我想出了相同的答案比約恩·林奎斯特。
回想起來,我肯定明白這是爲什麼錯了,所以經常做。使用ORM Django,sqlalchemy或其他的好處之一是你可以編寫命令,而不必知道或詳細瞭解它所連接的數據庫。無可否認,我恰好是這些用戶之一。然而,另一方面,如果不詳細地瞭解數據庫,調試這樣的錯誤非常麻煩並且可能是災難性的。
尼斯公司交付:) – kronosapiens