如何根据比较任何模型中字段的内部值来过滤查询集?
例如,看看下面的例子:
class Model1(models.Model):
num1 = models.IntegerField()
num2 = models.IntegerField()
说我必须过滤num2-num1小于10的Model1值。
那么,我们将如何写过滤条件?
那是Model1.objects.filter(???)
?
也可以说这些字段是日期时间,如下所示:
class Model2(models.Model):
t1 = models.DateTimeField(auto_now_add=True)
t2 = models.DateTimeField()
我们如何实现与上述类似的情况。假设我们要根据t2-t1进行小于10小时的过滤?
答案 0 :(得分:1)
您可以注释计算,然后对结果进行过滤。
from django.db.models import F
Model1.objects.annotate(diff=F('num1')-F('num2')).filter(diff__lt=10)