0
我需要彙總訂單表中的數據,以確定每個日期銷售的物品總量。Django從非Queryset上下文數據創建表
我的訂單模式是這樣的:
class Order(models.Model):
guest = models.ForeignKey('hotel.Guest', on_delete=models.CASCADE)
date = models.DateField(auto_now_add=True)
amount = models.IntegerField()
item = models.ForeignKey('hotel.Item', on_delete=models.CASCADE)
price = models.IntegerField(default=1)
is_paid = models.BooleanField(default=False)
paid_date = models.DateField(blank=True, null=True)
我現在已經創建了一個觀點,即隨着時間的推移和日期迭代:
def listAllOrders(request):
context = {}
orders = Order.objects.exclude(item__name = 'Room Rate')
item_dates = orders.values('date')
item_date = item_dates.order_by('date').distinct('date')
item_ids = orders.values('item__name')
item_id = item_ids.order_by('item__name').distinct('item__name')
inventory = []
for d in item_date:
for i in item_id:
q=Order.objects.filter(item__name=i['item__name'], date=d['date'])
ta=q.aggregate(total_amount = Sum('amount'))
tp=q.aggregate(total_price = Sum('price'))
inventory.append([d['date'],i['item__name'],ta,tp])
context['inventory'] = inventory
#context = Order.objects.all()
return render (request, 'hotel/inventory.html', context)
如何我現在在一個表中填入這個數據我模板。如果我給一個QuerySet上下文我通常這樣做是這樣的:
<table class="table table-condensed table_orders">
<tr>
<th>Date</th>
<th>Amount</th>
<th>Item</th>
</tr>
{% for Order in inventory %}
<tr>
<td>{{ Order.date }}</td>
<td>{{ Order.amount }}</td>
<td>{{ Order.item }}</td>
</tr>
{% endfor %}
</table>
這顯然並不在這裏,因爲在庫存數據未結構化的工作..我該怎麼解決這個問題?