1. 程式人生 > >models.TABLE.objects.filter()與models.TABLE.objects.get()的區別

models.TABLE.objects.filter()與models.TABLE.objects.get()的區別

今天遇到這個坑了,折騰了好幾個小時,記錄一下。

假如你是向去表中查詢某一個數據,且查詢條件對應欄位的值是unique的,那麼就用models.TABLE.objects.get(條件欄位='值'),使用該方法只會返回一個queryset。

models.TABLE.objects.get(條件欄位='值')

假如你是想通過某一個或者幾個條件去查詢多條資料,那麼你就要使用models.TABLE.objects.filter(條件欄位1='值1',條件欄位2='值2')的方法了,該方法只會返回queryset集,哪怕符合條件的資料只有一條,也是返回queryset集。不過可以在方法後面加個.first()轉換為單個queryset。

#返回queryset集
models.TABLE.objects.filter(條件欄位1='值1',條件欄位2='值2')

#返回單個queryset
models.TABLE.objects.filter(條件欄位1='值1',條件欄位2='值2').first()