如何计算具有多对一关系的模型的列总和?

时间:2019-01-04 09:23:16

标签: python django django-models django-queryset

我有一个小问题,有点卡住了。也许您可以帮我一个建议,以实现以下方案。

要求:我正在尝试处理食品日记本应用程序。我想要的是在主页上显示所有司法人员以及添加到特定司法人员中的所有记录卡路里。

我的首页帖子看起来像这样:

Posts

我的模型

class Journal(models.Model):
    date_juornal = models.DateField(auto_now=False, auto_now_add=False)
    note = models.TextField(default="", blank=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

class Record(models.Model):
    journal = models.ForeignKey(Journal, on_delete=models.CASCADE)
    food = models.ForeignKey(FoodType, on_delete=models.CASCADE)
    qty = models.IntegerField(default=0)

class FoodType(models.Model):
    food = models.CharField(max_length=100, default="")
    calories = models.IntegerField(default=0)

我的视图*

class HomeView(ListView):

def get(self, request):
    if request.user.is_authenticated():
        journals = Juornal.objects.filter(
            user=request.user).order_by('-date_juornal')
       rec1 = Record.objects.annotate(kcal=F('foodtype__calories'))
       rec2 = rec1.annotate(total=(F('kcal') * F('cantitate')) / 100)
        context = {
            'journals': journals,
            'records': records
        }
        return render(request, 'nutriapp/home.html', context)
    else:
        return redirect('login')

0 个答案:

没有答案