I am trying to list all objects of a model based on the difference of field values and a variable. For example I am trying to pull objects which has been created since 3 days or more. So I am trying to query the models as follows
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()
This is giving me an error when I run it in the shell as follows
AttributeError: 'ExpressionNode' object has no attribute 'lookup'
Please advice. I am using django 1.5.12
I don't think you need the annotation at all, you should just be able to filter on the date added that is older than 3 days old
Also, you should upgrade to a supported version of django