Заполнение данных в amchart django
models.py:
class Order(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE, null=True)
order_quantity = models.PositiveIntegerField(null=True)
date = models.DateTimeField(auto_now_add=True)
class Product(models.Model):
name = models.CharField(max_length=100, choices=PRODUCTS, null = True)
rate = models.PositiveIntegerField(null = True)
Views.py:
def index(request):
orders = Order.objects.all()
context = {
'orders': orders,
}
return render(request,'index.html', context)
Здесь у меня есть несколько заказов для samsung, apple и т.д. Должны быть только одни данные для samsung, apple и так далее. Как я могу агрегировать order_quantity для каждого продукта и отправить данные в формате, требуемом для этих данных?
Мне нужен следующий формат данных для отображения данных в гистограмме amchart. Как я могу этого добиться?
Формат, требуемый для графика
var data = [
{
name: "Samsung",
value: 35654,
},
{
name: "Apple",
value: 65456,
},
{
name: "Xiomi",
value: 45724,
},
];
Вы можете сделать:
Order.objects.annotate(total_items_sold=Sum("order_set__order_quantity").values("name", "items_sold")
Который вы затем преобразуете в список словарей? Т.е. в формат данных, который вам нужен.