可以說,我想匹配值的記錄,我有2種方法來做到這一點:Django的/ Python代碼:可讀VS快速的代碼
第一:
try:
obj = Model.objects.get(field = value)
except
pass
二:
if Model.objects.filter(field = value).count() > 0:
obj = Model.objects.filter(field_value)[0]
讓我們把代碼註釋放在一邊,我應該用哪種方式或者您喜歡閱讀哪一種?第一個似乎更快,因爲只有一個數據庫查找,但第二個方式似乎更具可讀性,但需要2個數據庫查找。
如果您只想要單個對象,請使用get()而不是filter() – NoPyGod
[此文檔鏈接](https://docs.djangoproject.com/en/1.2/topics/db/optimization/#don-t -overuse-count-and-exists)可能是相關的。 – dokkaebi
另外,你確定過濾器會拋出異常嗎?你可能不需要那個嘗試/除了。 – NoPyGod