feat: cart
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# Generated by Django 5.1.3 on 2024-11-27 12:10
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("shop", "0005_productprice_price_with_tax"),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Cart",
|
||||
fields=[
|
||||
(
|
||||
"uuid",
|
||||
models.UUIDField(
|
||||
default=uuid.uuid4,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="uuid",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creation_date",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True, verbose_name="fecha de creación"
|
||||
),
|
||||
),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
verbose_name="usuario",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "carrito",
|
||||
"verbose_name_plural": "carritos",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="CartItem",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"quantity",
|
||||
models.PositiveIntegerField(default=1, verbose_name="cantidad"),
|
||||
),
|
||||
(
|
||||
"cart",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="items",
|
||||
to="shop.cart",
|
||||
verbose_name="carrito",
|
||||
),
|
||||
),
|
||||
(
|
||||
"product",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="shop.product",
|
||||
verbose_name="producto",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "línea de carrito",
|
||||
"verbose_name_plural": "líneas de carrito",
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -6,6 +6,10 @@ from django.utils import timezone
|
||||
from django.utils.text import gettext_lazy as _
|
||||
from django.utils.text import slugify
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class TimestampedModel(models.Model):
|
||||
creation_date = models.DateTimeField(
|
||||
@@ -398,3 +402,38 @@ class Order(TimestampedModel):
|
||||
class Meta:
|
||||
verbose_name = _("pedido")
|
||||
verbose_name_plural = _("pedidos")
|
||||
|
||||
|
||||
class Cart(models.Model):
|
||||
uuid = models.UUIDField(default=uuid4, primary_key=True, verbose_name=_("uuid"))
|
||||
user = models.ForeignKey(
|
||||
User,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("usuario"),
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
creation_date = models.DateTimeField(
|
||||
auto_now_add=True, verbose_name=_("fecha de creación")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("carrito")
|
||||
verbose_name_plural = _("carritos")
|
||||
|
||||
|
||||
class CartItem(models.Model):
|
||||
cart = models.ForeignKey(
|
||||
"shop.Cart",
|
||||
on_delete=models.CASCADE,
|
||||
related_name="items",
|
||||
verbose_name=_("carrito"),
|
||||
)
|
||||
product = models.ForeignKey(
|
||||
"shop.Product", on_delete=models.CASCADE, verbose_name=_("producto")
|
||||
)
|
||||
quantity = models.PositiveIntegerField(default=1, verbose_name=_("cantidad"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("línea de carrito")
|
||||
verbose_name_plural = _("líneas de carrito")
|
||||
|
||||
Reference in New Issue
Block a user