【问题标题】:Django access to product total price through order modelDjango通过订单模型获取产品总价
【发布时间】:2020-06-13 14:31:53
【问题描述】:

我想获取所有订单中每种产品的总价格,我的意思是所有订单中每种产品的销售量。我应该在views.py中写什么Query来在html中显示这个问题?

这是我的models.py:

class Product(models.Model):
    name = models.CharField(max_length=200, null=True)
    price = models.FloatField(null=True)
    description = models.CharField(max_length=200, null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)

    def __str__(self):
        return self.name



class Order(models.Model):
    STATUS = (
        ('Pending', 'Pending'),
        ('Shipping', 'Shipping'),
        ('Delivered', 'Delivered'),
    )
    # order will remain after customer deleted
    customer = models.ForeignKey(Customer, null=True, on_delete=models.SET_NULL)
    product = models.ForeignKey(Product, null=True, on_delete=models.SET_NULL)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    status = models.CharField(max_length=200, null=True, choices=STATUS)
    note = models.CharField(max_length=200, null=True)

    def __str__(self):
        return self.product.name

这是我的views.py:

def home(request):
    products =  Product.objects.all()
    orders =  Order.objects.all()
    total_order_prices = Order.objects.aggregate(Sum('price'))


    orders.products = Product.objects.all().aggregate(Sum('price'))
    context = {'orders':orders, 'products':products,'total_order_prices': total_order_prices  }
    return render(request, 'account/home.html', context)

【问题讨论】:

    标签: python django backend django-class-based-views


    【解决方案1】:

    莫雷兹!

    我建议在Product() 中为Order() 定义一个外键。这样做可以让您更轻松地获取相关对象,如 here 所示。

    您只需products = order.product_set

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2016-12-26
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2022-07-16
      • 2019-04-05
      • 1970-01-01
      相关资源
      最近更新 更多