Aula 41 - Loja Online - Django - Modelo do carrinho
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:
Melhore seu NETWORKING
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
E também para me seguir no v.
Ah, se puder, clica na estrela nos meus repositórios pra dá uma força ao meu perfil no GITHUB
Código final da aula:
Aula 41 - Loja Online - Django - Modelo do carrinho
Vamos criar o modelo do carrinho, abra o
django_ecommerce/carts/models.py e coloque o código abaixo.
django_ecommerce/carts/models.py
from django.conf import settings
from django.db import models
from products.models import Product
User = settings.AUTH_USER_MODEL
class Cart(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null = True, blank = True)
products = models.ManyToManyField(Product, blank = True)
total = models.DecimalField(default = 0.00, max_digits=100, decimal_places = 2)
updated = models.DateTimeField(auto_now = True)
timestamp = models.DateTimeField(auto_now_add = True)
def __str__(self):
return str(self.id)
No Cart temos a chave estrangeira do usuário (
user ) ao qual o carrinho pertence, ou seja, o identificador do dono do carrinho, a associação do carrinho a um usuário.
(
products ) é um
ManyToManyField porque um produto pode estar em vários carrinhos e um carrinho pode ter vários produtos.
O
blank = True do
Products é porque o carrinho pode estar
vazio.
(
total ) é para guardar o valor total do carrinho.
O
max_digits define que no total podemos ter uma representação com
100 dígitos, incluindo as casa decimais.
O
decimal_places define que teremos
dois dígitos na parte decimal.
(
updated ) para saber quando o carrinho foi atualizado a última vez.
(
timestamp ) para saber quando o carrinho foi criado.
E por fim, o método
__str__(), que serve para obter o valor de um objeto
Cart em forma de string.
Migrações
Vamos executar o
makemigrations e depois o
migrate para repercutir no banco o modelo Cart com os campos que acabamos de criar.
python manage.py makemigrations
E agora:
python manage.py migrate
Abra o
django_ecommerce/carts/admin.py
from django.contrib import admin
from .models import Cart
admin.site.register(Cart)
Agora o
django_ecommerce/carts/views.py
from django.shortcuts import render
def cart_home(request):
cart_id = request.session.get("cart_id", None)
if cart_id is None:
print('create new cart')
request.session['cart_id'] = 12
else:
print("Cart ID exists")
return render(request, "carts/home.html", {} )
Acesse a rota e veja os prints no console do servidor:
É isso pessoal, nos vemos na próxima!
Código final da aula:
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Link do código fluente no Pinterest
Novamente deixo meus link de afiliados:
Obrigado, até a próxima e bons estudos. ;)