8 8 2 F物件和Q物件

2021-10-07 20:58:53 字數 1203 閱讀 4627

f物件

之前的查詢都是物件的屬性與常量值比較,兩個屬性怎麼比較呢? 答:使用f物件,被定義在django.db.models中。

語法如下:

f(屬性名)
from django.db.models import f

bookinfo.objects.

filter

(bread__gte=f(

'bcomment'

))

可以在f物件上使用算數運算。

bookinfo.objects.

filter

(bread__gt=f(

'bcomment')*

2)

q物件

多個過濾器逐個呼叫表示邏輯與關係,同sql語句中where部分的and關鍵字。

bookinfo.objects.

filter

(bread__gt=

20,id__lt=3)

或bookinfo.objects.

filter

(bread__gt=20)

.filter

(id__lt=

3)

如果需要實現邏輯或or的查詢,需要使用q()物件結合|運算子,q物件被義在django.db.models中。

語法如下:

q(屬性名__運算子=值)
from django.db.models import q

bookinfo.objects.

filter

(q(bread__gt=20)

)

q物件可以使用&、|連線,&表示邏輯與,|表示邏輯或。

bookinfo.objects.

filter

(q(bread__gt=20)

| q(pk__lt=3)

)

q物件前可以使用~操作符,表示非not。

例:查詢編號不等於3的圖書。

bookinfo.objects.

filter

(~q(pk=3)

)

F物件和Q物件詳解

list.filter bread gte f bcommit django支援對f 物件使用算數運算 list.filter bread gte f bcommit 2 f 物件中還可以寫作 模型類 列名 進行關聯查詢 list.filter isdelete f heroinfo isdelet...

10Django的Q物件和F物件

f物件和q物件 f物件作用 標記字段,無需獲取資料庫欄位到本地就能對資料庫中的指定字段進行操作 例如點讚高併發場景使用f物件更新點讚值即可實現如下這條sql語句的效果 update biao set money money 1 where id x 批量更新零售價 book.objects.all ...

Django學習路18 F物件和Q物件

f 物件 可以使用模型的 a 屬性和 b 屬性進行比較 寫法 需要的資料物件 資料表 類名 objects.filter 列名 條件 f 列名2 需求 檢視男生數量比女生少 的公司名稱 companies company.objects.filter c boy num lt f c girl nu...