这让我发疯了。我已经使用了所有的lookup_types,但似乎都没有。
我需要选择两周前从今天开始创建的对象。
这就是我所拥有的:
twoweeksago = datetime.datetime.now() - datetime.timedelta(days=14)
pastblast = Model.objects.filter(user=user, created=twoweeksago, done=False)
模型有一个创建的字段:created = models.DateTimeField(auto_now_add=True, editable=False)
但是我的查询并没有归还所有内容。在您提出之前,是的,数据库中有正确日期的记录。
有人可以就我做错了什么提出建议吗?
由于
答案 0 :(得分:2)
DateTimeField与DateField非常不同,如果你这样做
twoweeksago = datetime.datetime.now() - datetime.timedelta(days=14)
这将返回今天的日期,小时,分钟,秒减去14天,结果将包括小时分钟等等。所以查询:
pastblast = Model.objects.filter(user=user, created=twoweeksago, done=False)
要找到一个实例是在那个确切的时间内创建的,如果你只想关心这一天,而不是小时,分钟和秒,你可以做类似的事情
pastblast = Model.objects.filter(user=user, created__year=twoweeksago.year, created__month=twoweeksago.month, created__day=twoweeksago.day, done=False)
检查django文档: https://docs.djangoproject.com/en/1.4/ref/models/querysets/#year