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)) –