我有两个与此问题有关的模型。每个电源都有一个最大电流(安培数),在它变成危险之前可以流过它。
我希望允许人们通过安排“用法”实例来利用这些电源。
class PowerSource(models.Model):
title = models.CharField(max_length=20, unique=True)
max_amps = models.SmallIntegerField(default=0, help_text='Maximum capacity for this Power Source in amps')
class Usage(models.Model):
power_source = ForeignKey(PowerSource, on_delete=models.CASCADE)
start_dt = models.DateTimeField()
end_dt = models.DateTimeField()
amps = models.SmallIntegerField(help_text='How much current, in amps, does this usage need?')
检查新放置的Usage实例是否会将PowerSource置于max_amps值上很容易(只要获得与新Usage实例重叠的每个订单的安培数之和即可),但是我需要更复杂一些:
假定特定电源的多个“使用情况”实例的开始/停止时间段重叠,那么当整体使用率等于或高于“电源”的“ max_amps”值时,如何有效地确定所有时间段?
我对Django很有经验,但是我什至不知道从哪里开始。可以在ORM中完成吗?