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可以改變查詢的條件關係 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)