Python 为什么这个Django查询集没有返回结果?

Python 为什么这个Django查询集没有返回结果?,python,django,django-queryset,Python,Django,Django Queryset,我在一个项目中有这个类,我正在尝试获取当前类的上一个和下一个元素 def get_context(self, request, *args, **kwargs): context = super(GuidePage, self).get_context(request, *args, **kwargs) context = get_article_context(context) all_guides = GuidePage.objects.all().order_by

我在一个项目中有这个类,我正在尝试获取当前类的上一个和下一个元素

def get_context(self, request, *args, **kwargs):
    context = super(GuidePage, self).get_context(request, *args, **kwargs)
    context = get_article_context(context)

    all_guides = GuidePage.objects.all().order_by("-date")

    context['all_guides'] = all_guides

    context['next_guide'] = all_guides.filter(date__lt=self.date)

    context['prev_guide'] = all_guides.filter(date__gt=self.date)

    print context['next_guide']
    print context['prev_guide']

    return context
这两条线:

context['prev_guide'] = all_guides.filter(date__lt=self.date)
context['next_guide'] = all_guides.filter(date__gt=self.date)
正在返回控制台中打印的空结果:

(QuerySet[])
(QuerySet[])
我错过了什么

编辑:

我将lt和gt更改为ltegte。据我所知,这将包括日期相同的结果


在这种情况下,我得到了所有元素。所有元素都是在同一天创建的,但是,当然,在不同的时间,所以它们应该在几分钟内有所不同。在筛选较大/较小的时是否没有考虑到这一差异?

如果不仅要按日期筛选,还要按时间筛选,则必须将模型中的相关字段更改为
日期时间字段
,而不是
日期字段

像这样:

from django.db import models

class MyModel(models.Model):
    date_time = models.DateTimeField()
现在,您可以执行类似于
所有指南.filter(date\u time\u lte=self.date\u time)
所有指南.filter(date\u time\u gte=self.date\u time)


小心两个下划线
\uuu

在哪里声明了
self.date
?我想它指的是当前元素日期?也许我错了,我是Python/Django的新手,请展示整个
定义。还有,您指的是什么当前元素日期?您是指当前日期,比如2017年3月30日?我是指当前元素的日期字段值。这是元素创建的日期。当我打印日期时,它实际上返回了正确的值。我不认为日期字段是问题所在,所以,当您
打印(self.date)
时,您实际上得到了一个日期,对吗?