我有这个模特
class Exemple(models.Model):
from_date = models.DateField()
until_date = models.DateField()
person = models.ForeignKey(Person, on_delete=models.CASCADE)
我每年有一个数字,例如100,我必须从那个人的天数中减去这个数字。我必须计算该人每一行的日数,然后求和,然后再求100-天的总和
答案 0 :(得分:0)
考虑到persons
包含您的人员,您可以这样做:
for person in persons:
sum = 0
for exemple in Exemple.objects.filter(person=person):
sum += max(1, exemple.until_date - exemple.from_date)
说明:
1)您每人要做一个计算人
2)对于每个人,您浏览每个exemple
3)您将每个“直到-从”汇总。如果max()
等于1
(因为您说过不希望它是until_date = from_date
),0
将返回0
我不知道您是要将它存储在某个地方还是只想用一种方法来完成它,所以我只写了这段代码示例为您提供了逻辑。您必须对其进行调整以适合您的需求。
但是,这可能不是实现目标的更漂亮的方法。