Возврат меньшего количества товаров
Hi I have a problem during my django-app development. I wanted to add cart feature to my e-commerce website but I have a problem. I get an error get() returned more than one Item -- it returned 4
!
I bet it is caused by line
item = Item.objects.get_or_create(Item)` I have not specified ID and I have no idea how to do it or I should just create slugField and pass there the Slug?
views.py
@login_required
def add_to_cart(request, *args, **kwargs):
item = Item.objects.get_or_create(Item)
order_item,created = OrderItem.objects.get_or_create(active=True)
order,created = Order.objects.get_or_create(order_user=request.user,
item=item,
order_items=order_item)
order.quantity += 1
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)
Если вы не укажете поле id, django сделает это за вас. Смотрите docs. Также посмотрите, как работает метод get() docs.