我有3个模型:Event
,Product
和Ticket
。
每个Event
可以有多个Products
,每个Product
可以有多个Tickets
。现在我想计算一个事件的总收入。我可以轻松地使用这行代码来计算1个产品的总收入,如下所示:
Product.objects.annotate(
revenue = ExpressionWrapper(Count('tickets')* F('price'),output_field=DecimalField()),
)
但是,如果我尝试计算事件中所有产品的总收入,它就不起作用。这些是我的模特:
class Event(models.Model):
name = models.CharField(max_length=100)
city = models.CharField(max_length=30)
created = models.DateTimeField(auto_now_add=True)
class Product(models.Model):
name = models.CharField(max_length=50)
amount = models.IntegerField()
price = models.DecimalField(max_digits=5, decimal_places=2)
event = models.ForeignKey(Event,related_name='products')
class Ticket(models.Model):
buyername = models.CharField(max_length=50)
buyeremail = models.EmailField(max_length=254)
product = models.ForeignKey(Product,related_name='tickets')
答案 0 :(得分:0)