在字段之间执行算术运算
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
字段,但此方法将适用于可应用算术运算的每个字段。