F操作
- 如果要比较一个表中的两个不同的字段,可以使用 F 查询
ret = User.objects.filter(age__gt=F("weight"))
- F() 对象之间以及 F() 对象和常数之间可以进行加减乘除和取模的操作。
User.objects.update(age = F("age") + 2, height = F("height") + 5)
from django.db.models import F, Value
from django.db.models.functions import Concat
User.objects.update(name=Concat(F("name"), Value("+")))
User.objects.update(name = Concat(Value("-"), F("name") ))
Q操作
data = User.objects.filter(Q(age__gt=1006) | Q(weight__gt=55))
- Q 查询和字段查询同时存在时, 字段查询要放在 Q 查询的后面
data = User.objects.filter(Q(age__gt=1239) | Q(weight__gt=55), name__contains="小")