简体   繁体   English

有没有一种方法可以在Django中添加模型值?

[英]Is there a way to add up model values in django?

I want to get the total of all days combined. 我想将所有天数总计。 I can't really figure out how to add them and store the total value. 我真的不知道如何添加它们并存储总值。 Does anyone know how I could fix this? 有谁知道我该如何解决?

Here is my model: 这是我的模型:

class Weekstaat(models.Model):
    id = models.AutoField(primary_key=True, null=False, blank=False)
    status = models.CharField(max_length=11, choices=STATUS_CHOICES, default='Niet ingediend',)
    jaar = models.ForeignKey(Jaar, default=datetime.now().year, null=False, blank=False,on_delete=models.CASCADE)
    week = models.ForeignKey(Week, default=date.today().isocalendar()[1], null=False, blank=False,on_delete=models.CASCADE)
    werknemer = models.ForeignKey(User, related_name='weekstaat_werknemer', null=False, blank=False, default=1,on_delete=models.CASCADE)
    #contract = models.ForeignKey(Contract, null=False, blank=False, default=1,on_delete=models.CASCADE)
    maandag = models.FloatField(null=True, blank=True, default=0)
    dinsdag = models.FloatField(null=True, blank=True, default=0)
    woensdag = models.FloatField(null=True, blank=True, default=0)
    donderdag = models.FloatField(null=True, blank=True, default=0)
    vrijdag = models.FloatField(null=True, blank=True, default=0)
    zaterdag = models.FloatField(null=True, blank=True, default=0)
    zondag = models.FloatField(null=True, blank=True, default=0)

    def __str__(self):
        return str(self.jaar) + ' week ' + str(self.week) + str(self.werknemer) + str(self.status)

and here is the html: 这是HTML:

                  <td class="text-center">
                    {{ Weekstaat.maandag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.dinsdag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.woensdag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.donderdag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.vrijdag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.zaterdag }}
                  </td>
                  <td class="text-center">
                    {{ Weekstaat.zondag }}
                  </td>
                  <td class="text-center"> 
                   ...................
                  </td>

I'm not entirely clear what you are asking, but perhaps a simple model method would work: 我不清楚您要问什么,但也许可以使用一种简单的模型方法:

class Weekstaat(models.Model):
    ...

    def total(self):
        return sum([self.maandag, self.dinsdag, self.woensdag, self.donderdag, self.vrijdag, self.zaterdag, self.zondag])

Then you can just do: 然后,您可以执行以下操作:

{{ weekstaat.total }}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM