Django查询-如何在5分钟内获得并发记录数?
我对Django和Sql非常陌生。对不起,这个基本问题 我用Django+PostgreSql在下面的模型中记录活动的开始/停止时间Django查询-如何在5分钟内获得并发记录数?,django,postgresql,Django,Postgresql,我对Django和Sql非常陌生。对不起,这个基本问题 我用Django+PostgreSql在下面的模型中记录活动的开始/停止时间 class Test(models.Model): class Meta: unique_together = ('test_session_id',) test_session_id = models.CharField(max_length=100, default=None, null=True) started_a
class Test(models.Model):
class Meta:
unique_together = ('test_session_id',)
test_session_id = models.CharField(max_length=100, default=None, null=True)
started_at = models.DateTimeField(auto_now_add=False, blank=True, null=True)
finished_at = models.DateTimeField(auto_now_add=False, blank=True, null=True)
我想计算出每5分钟运行多少个测试。
如果存在以下四个会话,您能指导我如何编写Django queryset以获得以下结果吗
Sample Data
====
Test#1 11:33 ~ 12:17
Test#2 11:44 ~ 12:51
Test#3 12:08 ~ 12:19
Test#4 12:21 ~ 12:55
您可以在views.py上使用此函数。我测试了一下,它似乎有效 功能:
import datetime
import pytz
def testFunction0(dMain):
testObjects = Test.objects.all()
countedTest = 0
for test in testObjects:
if test.started_at < dMain and test.finished_at > dMain:
countedTest = countedTest + 1
return countedTest
你想让python脚本每5分钟测试一次吗?谢谢marlonjd。我认为存在一些数据库查询以便于编码。因为我认为在整个记录中循环似乎是一项昂贵的任务。如果您对答案感到满意,请检查答案。玩得高兴
import datetime
import pytz
def testFunction0(dMain):
testObjects = Test.objects.all()
countedTest = 0
for test in testObjects:
if test.started_at < dMain and test.finished_at > dMain:
countedTest = countedTest + 1
return countedTest
print(testFunction0(dMain=pytz.utc.localize(datetime.datetime(2019, 12, 5, 12, 15))))