django模型类总和

暗人

我的舞台通过ZoneStage与区域相关,并且每个舞台都有每个区域的值。

我的SubStage通过ZoneSubStage与Zone相关,并且每个SubStage都有每个Zone的值。

每个阶段可以具有多个子阶段。

问题:如何显示每个阶段的值,以便该值是与该阶段相关的SubStages值的摘要?

例如

如果第1阶段获得SubStage 1.1、1.2、1.3:

Stage1.value = SubStage1.1.value + SubStage1.2.value + SubStage1.3.value

这是我的模型:

class Zone(models.Model):
    zone_name = models.CharField()
    zone_number = models.CharField()


class Stage(models.Model):
    stage_number = models.CharField()
    stage_name = models.CharField()
    zones = models.ManyToManyField(Zone, through='ZoneStage')


class SubStage(models.Model):
    sub_name = models.CharField()
    stage = models.ForeignKey(Stage)
    zones = models.ManyToManyField(Zone, through='ZoneSubStage')


class ZoneStage(models.Model):
    zone = models.ForeignKey(Zone)
    stage = models.ForeignKey(Stage)
    value = models.PositiveSmallIntegerField(default=0)

    def save(self, *args, **kwargs):
        self.value =  ZoneSubStage.objects.filter(substage__stage=stage_instance).aggregate(Sum('value'))
        super(ZoneStage, self).save(*args,**kwargs)    


class ZoneSubStage(models.Model):
    zone = models.ForeignKey(Zone)
    substage = models.ForeignKey(SubStage)
    value = models.PositiveSmallIntegerField(default=0)
赞德勒

根据您写的内容,您可以得到一个Stageas的值stage_instance作为您的Stage实例):

ZoneSubStage.objects.filter(substage__stage=stage_instance).aggregate(Sum('value'))
# This will return {'value__sum': 90}

如果要通过调用获取值stage_instance.value,最简单的方法是valueStage模型中添加属性方法

class Stage(models.Model):
    stage_number = models.CharField()
    stage_name = models.CharField()
    zones = models.ManyToManyField(Zone, through='ZoneStage')

    @property
    def value(self):
        return ZoneSubStage.objects.filter(substage__stage=self).aggregate(Sum('value')).get('value__sum', 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django模型。检索模型的类

来自分类Dev

了解Django的模型类

来自分类Dev

了解Django的模型类

来自分类Dev

Django:使用前缀总和注释模型

来自分类Dev

Django模型派生类

来自分类Dev

访问Django模型的超类

来自分类Dev

导入Django的模型类-Python

来自分类Dev

Django模型派生类

来自分类Dev

访问Django模型的超类

来自分类Dev

Django从多个模型类继承

来自分类Dev

Django:从父模型类获取相关模型类

来自分类Dev

Django模型:汇总多个外键字段值的总和

来自分类Dev

基于外键关系的Django总和(涉及3个模型)

来自分类Dev

如何在Django模型/视图中计算总和

来自分类Dev

将非模型类放在Django的位置

来自分类Dev

从基类创建Django代理模型的实例

来自分类Dev

Django模型类创建自己的依赖项

来自分类Dev

Django字段具有模型类的价值

来自分类Dev

Django模型:存储对未知类的引用

来自分类Dev

ModelForm没有指定模型类。Django的

来自分类Dev

ModelForm没有指定模型类。[django]

来自分类Dev

在Django模型中使用Python数据类

来自分类Dev

未指定ModelForm模型类Django错误

来自分类Dev

Django模型字段,用于存储函数或类

来自分类Dev

Django模型引用其他类的对象

来自分类Dev

在类之间链接Django模型属性

来自分类Dev

Django:访问模型元类值

来自分类Dev

从 Django 模型方法访问类变量

来自分类Dev

Django模型管理员应该了解模型类吗?