Django-17 F對象和Q對象 F對象 Q對象

F對象

  • 一個F對象代表數據庫中某條記錄的字段的信息
  • 作用
    • 解決資源競爭問題
    • 通常是對數據庫中的字段值在不獲取的情況下進行操作
    • 用於類屬性(字段)之間的比較
  • 語法
from django.db.models import F
F('列名')
  • 示例2
    對數據庫中兩個字段值進行比較,列出哪兒些書的零售價高於定價?
from django.db.models import F
from bookstore.models import Book
books = Book.objects.filter(market_price__gt=F('price'))
# SELECT * FROM bookstore_book WHERE book_store.market_price > bookstore.price

Q對象

當前獲取查詢結果集使用複雜的邏輯或|、邏輯非~等操作時可以藉助Q對象進行操作
如:想找出定價低於20元 或 清華大學出版社的全部書,可以寫成

from django.db.models import Q
Book.objects.filter(Q(price__lt=20)|Q(pub="清華大學出版社"))

Q(條件1)|Q(條件2) 條件1成立或條件2成立
Q(條件1)&Q(條件2) 條件1和條件2同時成立
Q(條件1)&~Q(條件2) 條件1成立且條件2不成立

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章