繁体   English   中英

在 Django 中找到一个集合的 MAX,MIN 和 AVG

[英]find MAX,MIN and AVG of a set in Django

我有一个名为meter的 object,它有一个名为powerConsumptionReport_set的集合。

这是模型.py:

class Meter(models.Model):
region                  = models.PositiveSmallIntegerField(null=1)
IPAddress               = models.GenericIPAddressField(default=0,null=False,blank=False,unique=True)
PortNumber              = models.IntegerField(default=1024)
SerialNumber            = models.IntegerField(default=00000000,null=False,blank=False,unique=True)

class PowerConsumptionReport(models.Model):
meter = models.ForeignKey(Meter, blank=True, null=True, on_delete=models.CASCADE)
power = models.FloatField()

我需要从powerConsumptionReport_set中找到功率字段的最大值并将其显示在我的模板中。

这是我用来显示每个仪表的 DetailView:

class MeterDetailView(DetailView):
model = Meter
template_name = 'meter/specificMeter.html'

模板在这里:

<h1>
*** here i want to show min value of the set **** - 
{{ meter.powerconsumptionreport_set.first.power }} 
</h1>

如何从与每个仪表相关的 powerConsumptionReport_set 中访问功率字段的最大、最小和 AVG 值。

干杯。

也许在 views.py 中获取这些值比在模板中获取更好。 你可以做到这一点:

PowerConsumptionReport.objects.all().aggregate(Avg('power '))
PowerConsumptionReport.objects.all().aggregate(Min('power '))
PowerConsumptionReport.objects.all().aggregate(Max('power '))

暂无
暂无

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

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