i want to return a product names in distinct , and also i've used aggregate to some calculation as well
this is my models.py
class CustomerInvoice(models.Model):
    customer = models.CharField(max_length=50)
    items = models.ManyToManyField(Product,through='ProductSelecte')
    date = models.DateTimeField(auto_now_add=True)
class ProductSelecte(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    products= models.ForeignKey(CustomerInvoice,on_delete=models.CASCADE,related_name='product')
    qnt= models.IntegerField(default=1)
    price = models.IntegerField()
    cash = models.IntegerField()
i want to make table to track customers activity
and this is my query
context['clients'] = ProductSelecte.objects.filter(
    products__customer=self.object.name).values('product').annotate(quantity=Sum(F('qnt'))).order_by('product')
till here works fine but i also need to aggregate price using this
.aggregate(
        total_price=Sum(F('price')))
it raise this error
'dict' object has no attribute 'order_by'
thanks for your helping
UPDATE
for example at in first invoice of john 4th june john bought two pen price:20$ with 3 book price : 30$ total price for this invoice :50$ , and for second invoice  5th july he buy 1 pen price:10$ with 2 copybook price:20$ total price:30 , i need a result like this
client : john , activities :  3 pen(total pens he bought till now),price pens : 30  (total pens price he bought till now) , 3 book(total books he bought till now) ; price:30(total books price he bought till now) ,2 copybook ;price:20 
 and then total price of both invoice : 30+50 = 80
 
    