【问题标题】:Trouble filtering objects on basis of dates in django根据 django 中的日期过滤对象时遇到问题
【发布时间】:2012-01-06 05:52:16
【问题描述】:

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

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: name 'deadline' 未定义

如果我将查询更改为(只需将

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

上面的查询返回了对象,但是为什么在我使用 的情况下它没有返回对象呢?

【问题讨论】:

    标签: python django django-views django-queryset


    【解决方案1】:

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

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

    "Field lookups"

    【讨论】:

    • 在同样的情况下,我们如何做“小于等于”而不是“小于”?
    • 收到链接后,应该看一眼...
    【解决方案2】:

    你试过这个吗??

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

    我希望它会起作用。

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 2014-11-08
      • 2013-03-07
      • 2021-03-05
      • 1970-01-01
      • 2018-09-27
      • 2019-12-09
      • 2021-04-13
      相关资源
      最近更新 更多