Django之F與Q查詢

F查詢

from django.db.models import F,Q
# 1.查詢庫存數大於賣出數的書籍
res = models.Book.objects.filter(kucun__gt=F('maichu'))
print(res)  #<QuerySet [<Book: Book object>]>

# 2.將全部書的價格提升100
models.Book.objects.update(price=F('price') + 100)
"""
幫你獲取到表中某個字段對應的值
"""

Q查詢

Q可以改變查詢的條件關係  and or notpython

# 查詢書的名字是python入門或者價格是1000的書籍
# res = models.Book.objects.filter(title='水滸傳',price=1100)  # and關係
# res = models.Book.objects.filter(Q(title='python入門'),Q(price=1100))  # 逗號也是and關係
res = models.Book.objects.filter(Q(title='西遊記')|Q(price=1100))  # |是or關係
# res = models.Book.objects.filter(~Q(title='水滸傳'))  # ~是not關係
print(res)
print(res.query)

Q的高階用法django

q = Q()
q.connector = 'or' # q對象默認是and關係 能夠經過connector改變or
q.children.append(('title','三國'))
q.children.append(('price','1100'))

res = models.Book.objects.filter(q)
print(res)
相關文章
相關標籤/搜索