在模型中使用返回数据 Django



我对Django和Python相当陌生,我正在尝试开发一个小网站来计算一段时间内每天的总分钟数。

到目前为止,我创建了一个模型,其中包含包含我需要的所有信息的字段,以及模型中的两个函数,用于计算时间段内的天数和分钟数。

但现在我被困住了。我一直在尝试增加我的函数的结果,但我无法做到。

我不知道我这样做的方式是否正确或最有效的方式,我愿意接受所有改进代码的建议

多谢

class Vacation (models.Model):
reference = models.CharField(max_length=30, default='test')
start_date = models.DateField(default=0)
end_date = models.DateField(default=0)
start_hour = models.TimeField(default=0)
end_hour = models.TimeField(default=0)
monday = models.BooleanField()
tuesday = models.BooleanField()
wednesday = models.BooleanField()
thursday  = models.BooleanField()
friday = models.BooleanField()
saturday = models.BooleanField()
sunday = models.BooleanField()
@property
# these are not the actual functions but only the results they give me
def calcul_jours(self):
work_days = [1, 1, 0, 0, 1, 1, 0]
day_list = [6, 6 , 0, 0, 7, 7, 0]
return day_list
def calcul_heures(self):
day_minutes = [180, 90, 0, 0, 90, 90, 90]
night_minutes = [540, 360, 0, 0, 180, 360, 180]
day_night = np.array([day_minutes, night_minutes])
return day_night
def multiplication(self):
days = Calcul.calcul_jours
minutes = Calcul.calcul_heures
multiplication = np.multiply(days, minutes)
return multiplication

numpy 是一个很棒的库,但你即将艰难地学习时间数据类型中的 !@#$%^ 编程可以有多少。在这里,我将为您省去头痛,numpy支持此数据类型。一开始可能没有意义,但您将希望尽可能使用这些方法计算事物。另一种选择是python的内置日期时间库。希望这应该可以帮助您以您想要的方式计算事情。

就效率而言,请注意如何使用模型@property。它们对于像您在此处所做的那样创建"计算字段"很有用,但是如果您曾经在属性中放置查询,则每当调用此属性时,您将有效地调用 2 个查询。这使得显示大量数据非常繁重。

最新更新