我试图调用我的交易对象并循环遍历它,以创建来自交易对象的汇总值字典。我正在尝试使用这些值填充表。是否可以这样做,如果可以的话,请给我一些建议。我希望用用户交易过的每种不同的货币填充字典,他们拥有的当前货币量,因此用户货币的总和(current_amount),用户货币总和的购买金额(purchase_amount),用户总和的每种货币的销售金额(已售),用户每种货币的当前价值, 用户每种货币的购买价值,以及用户每种货币的销售价值。我现在已经对数据进行了硬编码以用于测试,但是我想创建一个循环以用查询结果填充json
喜欢填充下面的表格ID
{% for total_transaction in total_transactions %}
<tr>
<td>{{total_transaction.currency}}</td>
<td>{{total_transaction.current_amount}}</td>
<td>{{total_transaction.purchased_amount}}</td>
<td>{{total_transaction.sold_amount}}</td>
<td>{{total_transaction.current_value}}</td>
<td>{{total_transaction.purchased_value}}</td>
<td>{{total_transaction.sold_value}}</td>
</tr>
{% endfor %}
以下功能
portfolio(request):
count = Transaction.objects.filter(owner=request.user).values('currency').distinct(),
context = {
'total_transactions': [{
'currency': 'BTC', 'current_amount': 3, 'purchased_amount': 5, 'sold_amount': 2, 'current_value': 180,
'purchased_value': 400, 'sold_value': 380}, {
'currency': 'LTC', 'current_amount': 3, 'purchased_amount': 5, 'sold_amount': 2, 'current_value': 180,
'purchased_value': 400, 'sold_value': 380}, {
'currency': 'XRP', 'current_amount': 3, 'purchased_amount': 5, 'sold_amount': 2, 'current_value': 180,
'purchased_value': 400, 'sold_value': 380}
]
}
return render(request, 'webapp/portfolio.html', context, {'title': 'Portfolio'})
答案 0 :(得分:0)
如果您的交易模型已经包含所有这些字段,则可以简单地使用此字段:
portfolio(request):
#define each sub query like this
sum_currency_amount = Sum('amount').order_by('currency')
#the main query will be to get all transaction per users following by each annotate that allows you to define some key and value for the queryset.
transactions = Transaction.objects.filter(owner=request.user).annotate(
currency_amount = sum_currency_amount,
#other subquery here
),
return render(request, 'webapp/portfolio.html', context, {'title': 'Portfolio','total_transactions':transactions})
模板可以保持不变。