Python 创建django查询以获取特定持续时间的条目

Python 创建django查询以获取特定持续时间的条目,python,django,Python,Django,在我的django应用程序中,一个条目具有此模型 from models import PENDING,CLOSED class Entry(models.Model): ... name = models.CharField(max_length=200) status = models.CharField(max_length = 4,choices=status_values ,default = PENDING)

在我的django应用程序中,一个条目具有此模型

    from models import PENDING,CLOSED
    class Entry(models.Model):
        ...
        name = models.CharField(max_length=200)
        status = models.CharField(max_length = 4,choices=status_values ,default = PENDING)
        creation_date = models.DateTimeField(default=datetime.datetime.now)           
        closed_date = models.DateTimeField(null=True)
我需要找到所有状态为“关闭”的
条目
以及关闭时间超过4天的条目。我没有在模型中使用任何名为“持续时间”的字段,但希望计算
关闭日期
创建日期
之间的差异,如下所示

(关闭日期-创建日期)。天

我试图将查询写为

entries=Entry.objects.filter((关闭日期-创建日期).days>4)

在django shell我试过这个

In [9]:Entry.objects.filter((closed_date - creation_date).days > 4)
这会产生一个
名称错误

名称错误:未定义名称“关闭日期”

但当我试图获取一个条目并访问它的关闭日期字段时

In [9]:  entry1 =  Entry.objects.get(name='myentry')

In [10]: entry1.closed_date
Out[10]: datetime.datetime(2013, 4, 3, 14, 2, 4, 442518)

In [11]: entry1.creation_date
Out[11]: datetime.datetime(2013, 3, 17, 0, 0)
我想不出我在这里做错了什么……这个问题错了吗

此外,当我尝试此操作时,会出现语法错误:

In [12]: Task.objects.filter(status='CLOSED',(closed_date - creation_date).days > 4)

SyntaxError: non-keyword arg after keyword arg (<ipython console>, line 1)
[12]中的
:Task.objects.filter(status='CLOSED',(CLOSED\u date-creation\u date).days>4)
SyntaxError:关键字arg(,第1行)后的非关键字arg
您可以使用表达式来比较字段。所以你可以做一些像

entries = Entry.objects.filter(closed_date__gt=F('creation_date') + timedelta(days=4))

啊,是的,很抱歉,我在打电话,很难跟踪事情:P