私は単純な電子商取引サイトに取り組んでいます (起業家のためのコーディングコースに従っています)。カートのビューがあります(下)。セッションに問題があります。アイテムをカートに追加するたびに、そのセッションで同じカートにすべて追加する必要があるのに、新しいカートに追加されます。私は Django が初めてで、ここでどこが間違っているのかわかりません。追加された各アイテムを同じカートに入れる方法についてのアドバイスは大歓迎です.
# imports
def add_to_cart(request):
try:
cart_id = request.session('cart_id')
except Exception:
# If cart_id doesn't exist, make one
cart = Cart()
cart.save()
request.session['cart_id'] = cart.id
cart_id = cart.id
# If adding to the cart, need to POST
if request.method == "POST":
# Get data from the form
form = ProductQtyForm(request.POST)
if form.is_valid():
product_slug = form.cleaned_data['slug']
product_quantity = form.cleaned_data['quantity']
# Use that info to set up new objects in our cart
try:
product = Product.objects.get(slug=product_slug)
except Exception:
product = None
try:
cart = Cart.objects.get(id=cart_id)
except Exception:
cart = None
new_cart = CartItem(cart=cart, product=product, quantity=product_quantity)
new_cart.save()
print new_cart.product, new_cart.quantity, new_cart.cart # Check items are being added to the cart
return HttpResponseRedirect('/products/')
# If form is not valid, go to contact page
return HttpResponseRedirect('/contact/')
else:
raise Http404