用总费用减去总预算

subtracting total budget with total expense

models.py

class Add(models.Model):
    budget = models.IntegerField(blank=True, null=True)
    date = models.DateTimeField(auto_now=False, auto_now_add=False, blank=True)
    expense = models.IntegerField(default=0)

Views.py

def home_page(request):
    bud = Add.objects.aggregate(Sum('budget'))
    exp = Add.objects.aggregate(Sum('expense'))
    context = {'bud':bud, 'exp':exp,'budexp':budexp}
    return render(request, 'home.html', context,)

我想减去 bud 总数和 exp 总数 (bud - exp) 我该怎么做。

您可以在此处将聚合合并到一个查询中。这将减少 "roundtrips" 到数据库的数量,从而提高性能:

from django.db.models import F, Sum

def home_page(request):
    <b>context</b> = Add.objects.aggregate(
        bud=Sum('budget'),
        exp=Sum('expense'),
        <b>budexp=Sum('budget')-Sum('expense')</b>
    )
    return render(request, 'home.html', context,)

此处 context 将包含三个项目:budexpbudexp