我正在开发一个Django项目,并且必须进行一个查询,以返回当前处于活动状态的所有记录。查询必须为(开始日期,开始日期+时间)Django在开始日期和持续时间之间进行查询
我得到这个查询到目前为止之间,但我不知道如何查询开始日期+时间< datetime.now()
查看:
def home(request):
active_tasks = Task.objects.all().filter(start_time__lte=datetime.now())
context = {'active_tasks' : active_tasks}
return render(request, "main/home.html", context)
任务模式:
class Task(models.Model):
start_time = models.DateTimeField(default=datetime.now())
duration = models.IntegerField(default=10)
有你存储的持续时间在你的模型,而不是一个结束时间,一个很好的理由?结束时间将更容易查询。如果您需要在某处显示它,则仍然可以将持续时间作为计算属性。 – solarissmoke
他可以以某种方式使用django注释,例如postgresql有很多额外的日期时间功能,所以像这样:http://stackoverflow.com/questions/8432926/aggregate-difference-between-datetime-fields-in-djano将是可能的。但我认为它的过度杀伤 –
我使用了一段时间,因为它更容易填写表单,然后每次填入结束日期。而任务只需要几分钟。 –