在字段之间执行算术运算
F() 表达式可用于在模型字段之间执行算术运算(+,-,*等),以便定义它们之间的代数查找/连接。
-
让模型为:
class MyModel(models.Model): int_1 = models.IntegerField() int_2 = models.IntegerField() -
现在让我们假设我们想要检索
MyModel表的所有对象,他们的int_1和int_2字段满足这个等式:int_1 + int_2 >= 5。利用annotate()和filter(),我们得到:result = MyModel.objects.annotate( diff=F(int_1) + F(int_2) ).filter(diff__gte=5)result现在包含所有上述对象。
虽然该示例使用 Integer 字段,但此方法将适用于可应用算术运算的每个字段。