将返回的字段差异与 Django 查询集中的变量进行比较

Compare returned difference of fields with a variable in django queryset

我正在尝试根据字段值和变量的差异列出模型的所有对象。例如,我正在尝试提取自 3 天或更长时间以来创建的对象。所以我试图按如下方式查询模型

import datetime
from myapp_books.models import Book
from django.db.models import F

current_date = datetime.date.today()
books = Book.objects.annotate(day_difference=F('date_added__date') - current_date).filter(day_difference__gte=3)
books.count()

当我在 shell 中 运行 时出现如下错误

AttributeError: 'ExpressionNode' object has no attribute 'lookup'

请指教。我正在使用 Django 1.5.12

我认为您根本不需要注释,您应该能够过滤早于 3 天的添加日期

Book.objects.filter(date_added__date__gte=datetime.now()-timedelta(days=3))

此外,您应该升级到受支持的 django 版本