Сервер 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
.