Aula 41 – Loja Online – Django – Modelo do carrinho

Aula 41 – Loja Online – Django – Modelo do carrinho

Modelo do carrinho

Modelo do carrinho

Voltar para página principal do blog

Todas as aulas desse curso

Aula 40               Aula 42

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

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:

https://github.com/toticavalcanti

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:

http://127.0.0.1:8000/cart

É isso pessoal, nos vemos na próxima!

Aula 40               Aula 42

Todas as aulas desse curso

Voltar para página principal do blog

Código final da aula:

https://github.com/toticavalcanti

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:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>