我在Django中并没有真正的经验,但现在我正在尝试使用这样的模型类开发简单的项目:
$colors: (
#cc6698,
#0869ad,
#ff8300,
#7A86b8,
#f05133,
#2aa9e0,
#71bf45,
#ef0e39,
#9e79d7,
);
$color: nth($colors, random(length($colors)));
body {
color: $color;
}
在视图文件中 - 当我想获取start_time今天,明天或任何其他日期范围(包括小时)的所有对象时,没有问题:
class FacebookEvent(models.Model):
start_time = models.DateTimeField(null=True)
end_time = models.DateTimeField(null=True)
但现在我必须检查请求的日期(my_date)是否在模型的start_time和end_time之间。 我只需要做我以前做过的事情,但有点反过来......
花了我几个小时,但我仍然无法找到解决这个问题的任何概念。 有人有任何想法吗?
提前致谢。
答案 0 :(得分:1)
我不确定我是否理解这个问题。
如果您有模型实例和日期:
首先,您需要将日期转换为datetime.datetime对象
from dateutil.parser import parse
my_date= request.POST.get('my_date','')
mdate = parse(mydate)
然后您可以使用mdate进行逻辑比较。即: mdate> fbEvent.start_time
如果您想要日期之间的模型实例
mdate = parse(mydate)
events = FacebookEvent.objects.filter(start_time__gt=mdate, end_time__lt=mdate)
答案 1 :(得分:0)
以下内容可帮助您入门:
# assuming Sample is your model class and sampledate is your column to filter on
samples = Sample.objects.filter(sampledate__gt=datetime.date(2011, 1, 1), sampledate__lt=datetime.date(2011, 1, 31))
答案 2 :(得分:0)
from datetime import datetime
my_date= request.POST.get('my_date','') # for eg. 2015-10-26
my_date = datetime.strptime(my_date, "%Y-%m-%d")
events = FacebookEvent.objects.filter(start_time__lt=my_date, end_time__gt=my_date).order_by('start_time')
答案 3 :(得分:0)
此处派对稍晚,但如果您计划经常使用此range
功能,我强烈建议您查看新的postgres range fields。它们有很多方便的查询过滤器,可以提供更清晰,更直观的方式来处理范围。