Невозможно получить данные из представления в шаблон django

Problem as in title. I can not get data from view to template I get <QuerySet [{'id': 3, 'order_user_id': 13, 'ordered': False, 'total': Decimal('0.00')}]> when i use {{ order }}. I would like to get OrderedItems and Total from Order Model. How can i do that?

views.py

def cart(request):
    order = Order.objects.values()
    context = {'order': order}
    return render(request, 'shop/cart.html', context)

models.py:

class OrderItem(models.Model):
    order_item = models.ForeignKey(Item, on_delete=CASCADE, null=True)
    quantity = models.IntegerField(default=1)

class Order(models.Model):
    order_user = models.OneToOneField(User, on_delete=CASCADE)
    order_items = models.ManyToManyField(OrderItem)
    ordered = models.BooleanField(default=False)
    total = models.DecimalField(default=0.00, decimal_places=2, max_digits=11)

class Item(models.Model):
    title = models.CharField(max_length=150)
    price = MoneyField(
        decimal_places=2,
        default=0,
        default_currency='USD',
        max_digits=11,
    )

cart.html

{% extends 'shop/base.html' %}
{% block content %}
<div class="container">
    {% include 'shop/navbar.html' %}
    <div>
        {{order}}
        {{order.total}}
    </div>

</div>


{% endblock content %}
    

Вы должны использовать цикл for для итерации по элементам.

Сначала измените это: order = Order.objects.values() на order = Order.objects.all()

{% extends 'shop/base.html' %}
{% block content %}
<div class="container">
    {% include 'shop/navbar.html' %}
    <div>
        {% for item in order %}
            <li>User: {{ item.order_user }}<li/>
            <li>Items: 
                    {% for order_item in item.order_items %}
                        <li>{{ order_item }}</li>
                    {% endfor %}
            <li/>
            <li>Is ordered: {{ item.ordered }}<li/>
            <li>Total: {{ item.total }}<li/>
        {% endfor %}
    </div>
</div>
{% endblock content %}
Вернуться на верх