【发布时间】:2016-02-21 07:36:30
【问题描述】:
我正在尝试通过视图过滤数据。我尝试了 __range 和 __gte + __lte 但网站上没有结果。
型号:
class Change(models.Model):
def __unicode__(self):
return unicode(self.number)
number = models.IntegerField(verbose_name="CHG")
service = models.ForeignKey('organization.Service')
environment = models.CharField(choices=ENV_CHOICE, max_length=20)
description = models.CharField(max_length=50)
start_date = models.DateField()
start_time = models.TimeField()
end_date = models.DateField()
end_time = models.TimeField()
assignee = models.ForeignKey('organization.Assignee')
我尝试了不同的视图方法:
1
def home(request):
changes = Change.objects.all().filter(start_date__gte=datetime.date.today(), end_date__lte=datetime.date.today())
return render(request, 'index.html', {'changes' : changes})
在这种情况下,当仅使用 start_date__gte 时,它工作正常,但当我添加 end_date__lte 时,它不显示任何记录。
2
def home(request):
today = datetime.date.today()
changes = Change.objects.all(today__range=[start_date, end_date])
return render(request, 'index.html', {'changes' : changes})
在这种情况下,我得到错误全局名称 start_date 未定义。
非常感谢您的帮助。
【问题讨论】:
-
你想从你的数据中得到什么结果?能否请您发布示例。
-
@Wtower 我想查询更改数据库中的所有记录,并检查今天是否有任何更改。有时更改计划超过一天,所以我希望将其列在网站上,直到预定的结束日期。例如 number = 765432, ... , start_date = 2015-11-19, ... , end_date = 2015-11-22, ... 在日期范围内 (19, 20, 21, 22) 我想让它显示在网站上。非常感谢您。