首页 > 解决方案 > 如何从所有模型(会话)的字段(付款)(一对一关系)聚合所有键值(=成本)

问题描述

我想遍历会话的(一对一关系)字段。具体来说,支付和每个会话支付的总和总和所有的 payment.cost 就像每个会话支付(如果存在支付)的总和所有的成本 VALUES。

在我的views.py中(事情必须改变)

  "TotalCost": (
     sessions.values_list("payment").aggregate(Sum("cost"))
  ),

模型.py。(这些是我的稳定文件)

class Payment(models.Model):
    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
    payment_req = models.BooleanField(default=False)

    cost = models.FloatField(blank=True, validators=[validate_positive])

    invoice = models.CharField(max_length=100)
    user_id = models.ForeignKey(User, on_delete=models.CASCADE)
    # session_id = models.OneToOneField(Session, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.id)
class Session(models.Model):
    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)

    payment = models.OneToOneField(Payment, on_delete=models.CASCADE)

    user_comments_ratings = models.TextField()

    def __str__(self):
        return f"Id = {self.id}"

标签: djangodjango-queryset

解决方案


推荐阅读