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...