Hola a todos aqui va mi pregunta:
modelos.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)vistas.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)Y aparece el error No se puede resolver la palabra clave 'no_modules' en el campo. No se puede resolver la palabra clave 'no_modules' en el campo.
Entiendo el significado de la falla, pero ¿cómo puedo obtener el número total?
Tal vez use la clase F
from django.db.models import F total_no_modules = plants.aggregate(sum=Sum(F('nominal_power')*1000-F('module_nominal_power')))@Marcin tienes razón pero estaba buscando esto:
def home(request): plants = Plant.objects.filter(user=request.user) total_power = plants.aggregate(sum=Sum('nominal_power')) total_no_modules = 0 for plant in plants total_no_modules = total_no_modules + plant.no_modules template = 'data/home.html' context = {'plants':plants, 'total_power':total_power, 'total_no_modules':total_no_modules} return render(request, template, context)