Товар добавленный в корзину не отображается в самой корзине, но виден в админке в корзине
**basket.html**
<div class="container">
<div class="col-lg-5">
{% if products %}
<h4 class="mt3 mb-3 d-flex justify-content-between align-items-center mb-3">
Корзина <span class="badge badge-secondary badge-pill">3</span>
</h4>
{% for basket in products %}
<div class="card mb-3">
<div class="card-body">
<h5 class="card-title">{{ basket.product.name }}</h5>
<p class="card-text">{{ basket.product.description }}</p>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item bg-light">
<div class="row text-center">
<div class="col-lg-4">
<input name="basketID" type="number" class="form-control" value="{{ basket.quantity }}" min="0">
</div>
<div class="col-lg-4">1500 р.</div>
<div class="col-lg-4">
<a href="#"><i class="fas fa-trash"></i></a>
</div>
</div>
</li>
</ul>
</div>
{% endfor %}
<button type="button" class="btn btn-success btn-lg float-right">Оформить</button>
</div>
{% else %}
<h4 class="mt3 mb-3 text-center">Корзина пуста!</h4>
{% endif %}
</div>
**views.py**
def basket_add(request, product_id=None):
product = ProductModel.objects.get(id=product_id)
baskets = Basket.objects.filter(user=request.user, product=product)
if not baskets.exists():
cart = Basket(user=request.user, product=product)
cart.quantity = 1
cart.save()
return HttpResponseRedirect(reverse('shop_app:product'))
else:
cart = baskets.first()
cart.quantity += 1
cart.save()
return HttpResponseRedirect(reverse('shop_app:product'))
**product.html**
{% block catalog %}
<div class="container text-center">
<div class="row align-items-center">
{% for product in products %}
<div class="col">
<div class="product-card">
<div class="product-tumb">
<a href="{% static 'shop_app/img/gallery_1/DC2A0350.jpg' %}" data-fancybox="first_gallery" data-caption="">
<img src="{{ product.image.url }}" alt="">
</a>
</div>
<div class="product-details">
<span class="product-category">{{ product.category }}</span>
<h4><a href="">{{ product.name }}</a></h4>
<p>{{ product.description }}</p>
<div class="product-bottom-details">
<div class="product-price">{{ product.price }}</div>
<div class="product-links">
<form id="form_buying_product" class="form-inline">
<div class="card-footer text-center">
<a href="{% url 'shop_app:basket_add' product.id %}">
<button type="button" class="btn btn-outline-success">
В корзину
</button>
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% empty %}
<p>Нет товаров!</p>
{% endfor %}
</div>
</div>
{% endblock %}
**models.py**
class Basket(models.Model):
user = models.ForeignKey(UserDressModel, on_delete=models.CASCADE)
product = models.ForeignKey(ProductModel, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=0)
class Meta:
verbose_name = 'Корзина'
verbose_name_plural = 'Корзины'
def __str__(self):
return f'Корзина пользователя {self.user.name} | Продукт {self.product.name}'
Вернуться на верх