F物件和Q物件詳解

2021-09-19 12:40:13 字數 1546 閱讀 7217

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