Django 查詢集 F物件以及Q物件

2021-09-29 09:41:37 字數 862 閱讀 7368

f物件 eg:常適用於表內屬性的值的比較

模型:class company(models.model):

c_name = models.charfield(max_length=16)

c_gril_num = models.integerfield(default=5)

c_boy_num = models.integerfield(default=3)

f: 獲取字段資訊,通常用在模型的自我屬性比較,支援算術運算

eg:男生比女生少的公司

companies = company.objects.filter(c_boy_num__lt=f('c_gril_num'))

eg:女生比男生多15個人

companies = company.objects.filter(c_boy_num__lt=f('c_gril_num')-15)

q物件 eg:常適用於邏輯運算 與或或 非

年齡小於25:

student.objects.filter(q(sage__lt=25))

eg:男生人數多餘5 女生人數多於10個:

companies = company.objects.filter(c_boy_num__gt=1).filter(c_gril_num__gt=5)

companies = company.objects.filter(q(c_boy_num__gt=5)|q(c_gril_num__gt=10))

支援邏輯運算:

與或非&|~

年齡大於等於的:

student.objects.filter(~q(sage__lt=25))

Django之F和Q查詢

當一般的查詢語句已經無法滿足我們的需求時,django為我們提供了f和q複雜查詢語句。假設場景一 老闆說對資料庫中所有的商品,在原 的基礎 價10元,你該怎麼做?場景二 我要查詢乙個名字叫 年齡是18歲,或者名字是yyy,年齡是是19歲的人,你該怎麼寫你的orm語句?一 f查詢 1 2 3 4 fr...

Django之F和Q查詢

當一般的查詢語句已經無法滿足我們的需求時,django為我們提供了f和q複雜查詢語句。假設場景一 老闆說對資料庫中所有的商品,在原 的基礎 價10元,你該怎麼做?場景二 我要查詢乙個名字叫 年齡是18歲,或者名字是yyy,年齡是是19歲的人,你該怎麼寫你的orm語句?一 f查詢 1 2 3 4 fr...

Django之F與Q查詢

from django.db.models import f,q 1.查詢庫存數大於賣出數的書籍 res models.book.objects.filter kucun gt f maichu print res 2.將所有書的 提高100 models.book.objects.update p...