无法根据django中的日期过滤对象

时间:2012-01-06 05:52:17

标签: python django django-views django-queryset

我有一个任务模型,其中每个任务都有截止日期。

class Tasks(models.Model):
    assigned_to = models.ForeignKey('Users', related_name='user_assigned_to')
    deadline = models.DateTimeField()
    status = models.CharField(max_length=20,null=True)

我需要使用其他过滤器过滤掉截止日期早于今天日期的任务。所以我使用了这个查询:

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline<datetime.datetime.today()),~Q(status="Done"))

但是这给了我错误:

  

NameError:未定义名称“截止日期”

如果我将查询更改为(只是将&lt; sign更改为=):

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline=datetime.datetime.today()),~Q(status="Done"))

上面的查询返回了我的对象,但是为什么在我使用&lt;或者&gt;与datetime?

2 个答案:

答案 0 :(得分:3)

因为使用<试图将其用作名称而不是关键字参数。

..., Q(deadline__lt=datetime.datetime.today()), ....

"Field lookups"

答案 1 :(得分:0)

你试试这个吗?

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline__lt = datetime.datetime.today()),~Q(status="Done"))

我希望它能奏效。