已有表
from django.db.models import Model, F, Q
class Goods(Model):
name = CharField(max_length=32, verbose_name='産品名稱')
surplus = IntegerField(verbose_name='餘量')
sales = IntegerField(verbose_name="銷量")
total = IntegerField(verbose_name="總量")
已有資料
id | name | surplus | sales | total |
1 | 商品A | 1 | 1 | 2 |
2 | 商品B | 1 | 1 |
3 | 商品C | 1 | 1 |
4 | 商品D | 3 |
F查詢
根據同一條資料中兩個值的對比查詢
- 例: 查詢餘量和銷量相同的商品, 需要查到 商品A
- 查詢餘量小于銷量的商品, 需要查到 商品C
- F查詢還可以在查詢中進行計算
- 查詢餘量加銷量等于總量的商品, 需要查到 商品A B C
- F表達式功能還有很多,這裡隻是總結了一些用到的查詢方法,其餘功能可以參考官方文檔:Django—F表達式
Q查詢
Django查詢的 or 操作
- 例: 查詢總量為2, 或者總量為3的商品, 需要查到商品A和商品D
~Q 不等于
- 例: 查詢總量不等于3的商品, 需要查到 商品A B C
F查詢和Q查詢混合使用
- 例: 查詢餘量加銷量不等于總量的商品, 需要查到商品D
- 或者這樣