【发布时间】:2019-08-24 10:35:06
【问题描述】:
我想知道如何在Django ORM中获得总价格:数量乘以价格,以及模板使用哪个变量来查看值?
帖子提交成功,但无法得到总价:这是我的views.py: 上下文={ “门票”:Ticket.objects.all(),
"total":Ticket.objects.filter(purchaser=User.objects.get(id=request.session['user_id'])).aggregate(total_cost=Sum(F('price')*F('数量'), output_field=FloatField()) } 返回渲染(请求,'first_app/confirmation.html',上下文)
这是在我的models.py中:
from django.db import models
from django.db.models import Sum, Aggregate, F
class User(models.Model):
first_name=models.CharField(max_length=100)
last_name=models.CharField(max_length=100)
email=models.CharField(max_length=100)
password=models.CharField(max_length=100)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
class Ticket(models.Model):
venue=models.CharField(max_length=100)
quantity=models.PositiveIntegerField(default=1)
price=models.DecimalField(default=25.00, max_digits=10, decimal_places=2,
null=True, blank=True)
loop=models.CharField(max_length=100)
purchaser = models.ForeignKey(User, related_name="purchases",
on_delete=models.PROTECT)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
如何查询ORM得到总数量*价格?应该在上下文中执行“ticket”键之前还是之后包含该查询?是否应该将该查询添加到工单模型字段?如模型所示,每个都硬编码为 25.00 美元。谢谢,不胜感激!
【问题讨论】:
标签: django model aggregate django-queryset