Объединение двух моделей и группировка с помощью SUM в Django, но некоторые поля не отображаются
У меня есть две модели ProductDetails и InventorySummary. Я хочу объединить эти две модели и хочу сгруппировать по названию товара и количеству товара SUM. Количество должно быть умножено на цену продукта. Мои модели приведены ниже:
class ProductDetails(models.Model):
id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=100, unique=True)
purchase_price = models.DecimalField(max_digits=7, decimal_places=2)
dealer_price = models.DecimalField(max_digits=7, decimal_places=2)
retail_price = models.DecimalField(max_digits=7, decimal_places=2)
remarks = models.CharField(max_length=255, blank=True)
def __str__(self):
return self.product_name
class InventorySummary(models.Model):
id = models.AutoField(primary_key=True)
date = models.DateField(default=date.today)
product_name = models.ForeignKey(ProductDetails, on_delete=models.CASCADE)
quantity = models.IntegerField()
def __str__(self):
return str(self.product_name)
Мои взгляды приведены ниже, которые работают хорошо:
def stockPrice(request):
stock = (
InventorySummary.objects.annotate(total_amount=Sum(F("product_name__purchase_price") *
F("quantity"))))
return render(request, 'inventory_price.html', {'stock': stock})
Но когда я группирую, то не работает. Работает только общая_сумма. Название_продукта, закупочная_цена и количество не отображаются
def stockPrice(request):
stock = (
InventorySummary.objects.values("product_name__product_name")
.order_by("product_name__product_name")
.annotate(total_amount=Sum(F("product_name__purchase_price") * F("quantity"))))
return render(request, 'inventory_price.html', {'stock': stock})