Как вывести результаты запроса groupby в html - Django

Я пытаюсь вывести результаты запроса group by из представления в HTML-таблицу, но она ничего не возвращает. Первоначально мне удалось вывести все результаты, но после применения агрегации суммы я не могу добиться их появления.

Django View - с Group By

def get_asset_price(request):
    # CryptoAssets is the model

    obj = CryptoAssets.objects.filter(user_id=request.user.id).values('symbol')
    obj = obj.annotate(total_units=Sum('units'),
                  total_cost=Sum('cost'))\
        .order_by('symbol')

    # Returns list of dictionaries
    context = {
        'object': obj 
    }
    return render(request, 'coinprices/my-dashboard.html', context)

HTML

<style>
table, th, td {
  border: 1px solid black;
}
</style>
<div class="container">
      <h1>My Dashboard</h1>
    <table>
        <tr>
            <th>Symbol</th>
            <th>Total Units</th>
            <th>Total Cost</th>
        </tr>
        {% for row in object %}
        <tr>
            <td>{{ row.symbol }}</td>
            <td>{{ row.units }}</td>
            <td>{{ row.cost }}</td>
        </tr>
        {% endfor %}
    </table>
</div>
    {% endblock %}

Ниже я приведу вид, который работал без группы by.

Django View - No group by

def get_asset_price(request):
    # CryptoAssets is the model

    obj = CryptoAssets.objects.all().filter(user_id=request.user.id)

    # Returns list of objects
    context = {
        'object': obj
    }
    return render(request, 'coinprices/my-dashboard.html', context)

Я думаю, что вы вызываете атрибут, который не существует в вашем объекте. Тип вашего объекта - список словарей. Измените коды вашего шаблона на что-то вроде этого (это самый простой способ и, возможно, вы сможете улучшить его позже, например, добавив тег шаблона, подобный тому, который используется в этом вопросе):

<table>
    <tr>
        <th>Symbol</th>
        <th>Total Units</th>
        <th>Total Cost</th>
    </tr>
    {% for row in object %}
        <tr>
        {% for key, value in row.items %}
                <td>{{ key }}</td>
                <td>{{ value }}</td>
        {% endfor %}
        </tr>
    {% endfor %}
</table>
Вернуться на верх