list.filter(bread__gte=f(『bcommit』))django支援對f()物件使用算數運算
list.filter(bread__gte=f(『bcommit』)*2)
f()物件中還可以寫作」模型類__列名」進行關聯查詢
list.filter(isdelete=f(『heroinfo__isdelete』))
對於date/time欄位,可與timedelta()進行運算
list.filter(bpub_date__lt=f(『bpub_date』)+timedelta(days=1))
from django.db.models import q
query = q(
)q1 = q(
)q1.connector =
"and"
# 連線的條件是and 代表就是&
("email"
,"[email protected]"))
# email代表的是資料庫的字段
("password"
,"666"))
# 等同於:email="[email protected]" & password="666"
q2 = q(
)q2.connector =
"and"
# 同樣q2物件連線條件也是and
("username"
,"fe_cow"))
# 同樣資料庫裡username欄位
("password"
,"fe_cow666"))
# 等同於:username="fe_cow" & password="fe_cow666"
query.add(q1,
"or"
) query.add(q2,
"or"
)# query目前裡面的符合條件結果就是: (email="[email protected]" & password="666") | (username="fe_cow" & password="fe_cow666")
userinfo_obj = models.userinfo.objects.
filter
(query)
.first(
)
from django.db.models import q
list
.filter
(q(pk__lt=6)
)
list
.filter
(pk__lt=6)
.filter
(bcomment__gt=10)
list
.filter
(q(pk__lt=6)
| q(bcomment__gt=10)
)
list
.filter
(~q(pk__lt=6)
)
8 8 2 F物件和Q物件
f物件 之前的查詢都是物件的屬性與常量值比較,兩個屬性怎麼比較呢?答 使用f物件,被定義在django.db.models中。語法如下 f 屬性名 from django.db.models import f bookinfo.objects.filter bread gte f bcomment ...
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...