Добавление товаров в корзину
Теперь необходимо добавить кнопку «Добавить в корзину» на страницу сведений о продукте. Отредактируйте файл views.py приложения shop и добавьте CartAddProductForm в представление product_detail, следующим образом:
from cart.forms import CartAddProductForm
def product_detail(request, id, slug):
product = get_object_or_404(Product,
id=id,
slug=slug,
available=True)
cart_product_form = CartAddProductForm()
return render(request, 'shop/product/detail.html', {'product': product,
'cart_product_form': cart_product_form})
Отредактируйте шаблон shop/product/detail.html приложения shop и добавьте следующую форму цены продукта следующим образом:
<p class="price">${{ product.price }}</p>
<form action="{% url "cart:cart_add" product.id %}" method="post">
{{ cart_product_form }}
{% csrf_token %}
<input type="submit" value="Add to cart">
</form>
Убедитесь, что сервер разработки работает командой python manage.py runserver
. Теперь откройте в браузере http://127.0.0.1:8000/ и перейдите к странице сведений о продукте. Теперь он содержит форму для выбора количества перед добавлением продукта в корзину. Страница будет выглядеть следующим образом:
Выберите количество и нажмите кнопку "Добавить в корзину". Форма передается в cart_add view через POST. Представление добавляет продукт в корзину в сессии, включая текущую цену и выбранное количество. Затем он перенаправляет пользователя на страницу сведений о корзине, которая будет выглядеть как на следующем снимке экрана: