Django ile alışveriş sepetindeki ürünlerin toplam maliyetini takip ediyorum. Benim sorunum ilk parça takip ediliyor. Miktarı indirdiğinizde veya miktarı azalttığınızda fiyat ayarını yaparsınız. Ancak bunun altındaki herhangi bir şey toplam maliyeti DEĞİLDİR. Sorun şu ki, yanlış bir şekilde bunun üzerinden geçmiyordum, bu yüzden bir kaç saatlik başarısızlıktan sonra, ben de isteyeceğimi düşündüm.Django ile Alışveriş Sepetindeki Öğeleri Güncelleme
def cart()
ben değerlerini güncelleyerek üye değişkenleri aracılığıyla ekleyin döngü ediyorum. Karşılıklı sorun size
remove_from_cart
tıkladığında book_id
cart()
işleve geçirilen olmasıdır Ama bir tek o book_id
bir sorunu olsaydı sepeti listesi yalnızca ilk öğeyi nasıl oluyor o zaman içinde geçirilen Aktarılan book_id
ne olursa olsun değiştirilmekte?
views.py
@login_required
def add_to_cart(request,book_id):
book = get_object_or_404(Book, pk=book_id)
cart,created = Cart.objects.get_or_create(user=request.user, active=True)
order,created = BookOrder.objects.get_or_create(book=book,cart=cart)
order.quantity += 1
order.save()
messages.success(request, "Cart updated!")
return redirect('cart')
def remove_from_cart(request, book_id):
if request.user.is_authenticated():
try:
book = Book.objects.get(pk = book_id)
except ObjectDoesNotExist:
pass
else:
cart = Cart.objects.get(user = request.user, active = True)
cart.remove_from_cart(book_id)
return redirect('cart')
else:
return redirect('index')
def cart(request):
if request.user.is_authenticated():
cart = Cart.objects.filter(user=request.user.id, active = True)
orders = BookOrder.objects.filter(cart=cart)
total = 0
count = 0
for order in orders:
total += order.book.price * order.quantity
count += order.quantity
context = {
'cart': orders,
'total': total,
'count': count,
}
return render(request, 'store/cart.html', context)
else:
return redirect('index')
OMG ... Böyle bir patron biraz kapalıdır. Bu bana saatlerce ve saatlerce acı verdi. Linter'ım bunu nasıl yakalayamaz? Gelecekte bundan nasıl kurtulabilirim? – wuno
Bunlar maalesef sadece akışın mantıksal olarak anlaşılmasıyla yakalandı. Hata ayıklamak için, gidilecek bir yol, baskı ifadeleri kullanmak ya da 'pdb'… – karthikr
Ok 'u kullanarak teşekkür ederiz. Ben yukarı bakacağım. – wuno