檢查查詢是否返回任何結果的推薦方法是什麼?
例子:檢查Django中的空查詢集
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
我想有這個檢查的幾種不同的方式,但我想知道有經驗的Django的用戶會怎麼做。 在文檔中的大多數例子只是忽略這裏什麼也沒有找到的情況下...
這似乎在文檔中也是首選,例如:https:// docs。djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower 2015-05-22 09:02:08
@Wtower如果過濾表達式沒有命中任何記錄或產生結果的「列表」,那麼您引用的代碼已經爲合同提高了404有記錄。那裏的代碼只會碰到一次數據庫。如果他們使用'exist()'或者'count()'來檢查是否有記錄返回,那麼他們會敲擊數據庫兩次(一次檢查,一次獲取記錄)。這是一個特定的情況。它不包含在*一般情況下*,知道一個查詢是否會返回記錄的首選方法是使用do'if queryset:...' – Louis 2015-11-03 16:26:22
@Louis我引用的代碼只是它包含的一個示例一行'if not my_objects:'來證明他們是如何在文檔中執行的。所有其他都完全不相關,所以我不明白你的觀點。他們也可以提出一千個問題,這仍然是完全不相關的,因爲這不是這個答案的重點,我明確表示我同意。 – Wtower 2015-11-04 08:47:13