Aula 46 – Loja Online – Django – Mostrando itens do carrinho
Aula 46 – Loja Online – Django – Mostrando itens do carrinho
Voltar para página principal do blog
Todas as aulas desse curso
Aula 45 Aula 47
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Digital Innovation
Hostinger
Digital Ocean
One.com
Melhore seu NETWORKING
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
E também para me seguir no https://github.com/toticavalcanti.
Código final da aula:
https://github.com/toticavalcanti
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
Aula 46 – Loja Online – Django – Mostrando itens do carrinho
Hora de mostrar os itens que estão no carrinho.
Vamos adaptar um código do getbootstrap para o contexto do carrinho
https://getbootstrap.com/docs/5.0/content/tables/
O código adaptado vai ficar assim no nosso django_ecommerce/carts/templates/carts/home.html
django_ecommerce/carts/views.py
from django.shortcuts import render, redirect
from products.models import Product
from .models import Cart
def cart_home(request):
cart_obj, new_obj = Cart.objects.new_or_get(request)
return render(request, "carts/home.html", {"cart": cart_obj})
def cart_update(request):
print(request.POST)
product_id = request.POST.get('product_id')
if product_id is not None:
try:
product_obj = Product.objects.get(id = product_id)
except Product.DoesNotExist:
print("Mostrar mensagem ao usuário, esse produto acabou!")
return redirect("cart:home")
cart_obj, new_obj = Cart.objects.new_or_get(request)
if product_obj in cart_obj.products.all():
cart_obj.products.remove(product_obj)
else:
cart_obj.products.add(product_obj)
return redirect("cart:home")
Acesse
django_ecommerce/carts/templates/carts/home.html
{% extends "base.html" %}
{% block content %}
<h1>Carrinho</h1>
{% if cart.products.exists %}
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Nome do produto</th>
<th>Preço do produto</th>
</tr>
</thead>
<tbody>
{% for product in cart.products.all %}
<tr>
<thscope="row">{{ forloop.counter }}</th>
<td><a href='{{ product.get_absolute_url }}'>{{ product.title }}</a><small><a href='#'>Deseja remover?</a></small></td>
<td>{{ product.price }}</td>
</tr>
{% endfor %}
<tr>
<tdcolspan="2"></td>
<td><b>Subtotal</b> {{ cart.subtotal }}</td>
</tr>
<tr>
<tdcolspan="2"></td>
<td><b>Total</b> {{ cart.total }}</td>
</tr>
</tbody>
</table>
{% else %}
<p class='lead'>Carrinho vazio</p>
{% endif %}
{% endblock %}
O forloop.counter indica quantas vezes a tag for passou por seu loop.
Acesse
http://localhost:8000/admin/
e
http://localhost:8000/cart/
Veja se tá calculando e mostrando direitinho no carrinho.
Por essa aula é só, nos vemos na próxima. 🙂
Voltar para página principal do blog
Todas as aulas desse curso
Aula 45 Aula 47
Código final da aula:
https://github.com/toticavalcanti
Outros canais
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Hostinger
Digital Ocean
One.com
É isso, ficamos por aqui \o/ e até a próxima 😉