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不成立