Сервер Django не отображает информацию о базе данных в html-шаблоне

Я пытаюсь сделать ecommerce и при создании базы данных она не обновляется на странице checkout.html. Ниже код.

views.py def cart(request): if request.user.is_authenticated: customer = request.user.customer order, created = Order.objects.get_or_create(customer = customer, complete = False) items = order.orderitem_set.all() else: items = [] order = {'get_cart_total':0, 'get_cart_items':0} context = {'items':items, 'order':order} return render(request, 'store/cart.html', context)

def checkout(request):
if request.user.is_authenticated:
    customer = request.user.customer
    order, created = Order.objects.get_or_create(customer = customer, complete = False)
    items = order.orderitem_set.all()
else:
    items = []
    order = {'get_cart_total':0, 'get_cart_items':0}
context = {}
return render(request, 'store/checkout.html', context)

checkout.html

                {% for item in items %}
                <div class="cart-row">
                    <div style="flex:2"><img class="row-image" src="{{item.product.imageURL}}"></div>
                    <div style="flex:2"><p>{{item.product.name}}</p></div>
                    <div style="flex:1"><p>${{item.product.price|floatformat:2}}</p></div>
                    <div style="flex:1"><p>x{{item.quantity}}</p></div>
                </div>
                
            {% endfor %}

он работает для cart.html, но не работает для checkout.html и нет никаких ошибок, которые нужно искать. Любая помощь будет оценена по достоинству.

Контекст пуст. Контекст представляет собой словарь, в котором имена переменных, используемых в шаблоне, отображаются на соответствующие значения.

Если вы таким образом хотите передать items в шаблон, вы пишете:

def checkout(request):
    if request.user.is_authenticated:
        customer = request.user.customer
        order, created = Order.objects.get_or_create(customer = customer, complete = False)
        items = order.orderitem_set.all()
    else:
        items = []
        order = {'get_cart_total':0, 'get_cart_items':0}
    # pass  items ↓    pass order ↓
    context = {'items': items, 'order': order }
    return render(request, 'store/checkout.html', context)

Здесь items будет пустой кверисет, так как вы берете orderitem_set из order, но в этот момент вы не создали OrderItem объектов, которые связаны с этим Order, поэтому, скорее всего, сначала нужно создать OrderItem для созданных order.

Вернуться на верх