1
大家好,这里是我的问题:如何计算属性的总和
models.py
class Plant(models.Model)
nominal_power = models.PositiveIntegerField()
module_nominal_power= models.PositiveIntegerField()
@property
def no_modules(self):
return round(self.nominal_power*1000/self.module_nominal_power)
views.py
def home(request):
plants = Plant.objects.filter(user=request.user)
total_power = plants.aggregate(sum=Sum('nominal_power'))
total_no_modules = plants.aggregate(sum=Sum('no_modules'))['sum']
template = 'data/home.html'
context = {'plants':plants,
'total_power':total_power,
'total_no_modules':total_no_modules}
return render(request, template, context)
而且我得到的错误无法将关键字'no_modules'解析为字段。 无法将关键字'no_modules'解析为字段。
我不承认失败的含义,但是如何获得总数?
你的解决方案是正确的,但我要替换'(F( 'nominal_power') * 1000-F('module_nominal_power')'''no_modules' – George
你不能在你的查询中使用model属性,因为django orm不能将你的属性函数转换为SQL查询,但是如果你不想使用模块,你可以得到所有的植物和总和财产,如下所示:sum(map(lambda plant:plant.no_module,plants)) –