Hello I am struggling making cart to my e-commerce web app. I get error NoReverseMatch because of:
<a class= "navbar__link" href="{% url 'cart-page' item.id %}">Cart</a>
views.py:
@login_required
def add_to_cart(request, item_id, *args, **kwargs):
item = Item.objects.get_object_or_404(Item, pk=item_id)
order_item= OrderItem.objects.get_object_or_create( order_item = item, quantity=1)
order = Order.objects.get_object_or_create(order_user=request.user, order_items=order_item)
order.save()
messages.success(request, "Cart updated!")
return redirect('cart-page')
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.ForeignKey(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,
)
image = models.ImageField(upload_to='pictures', default='static/images/man.png')
description = models.TextField(default="Item")
EDIT
My urls as you wanted. urls.py
urlpatterns = [
path('detail/<int:pk>/', ShopDetailView.as_view(), name='detail-page'),
path('cart', views.add_to_cart, name='cart-page')
]
Any advices?