Files
shopback/cart/models.py
Beyhan Oğur d9f1ea341e first commit
2026-04-26 22:27:56 +03:00

34 lines
1.0 KiB
Python

from django.db import models
from django.conf import settings
from product.models import Product
class Cart(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='cart')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f"{self.user.email} - Cart"
def get_total_price(self):
return sum(item.total_price for item in self.items.all())
class CartItem(models.Model):
cart = models.ForeignKey(Cart, on_delete=models.CASCADE, related_name='items')
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
class Meta:
unique_together = ('cart', 'product')
def __str__(self):
return f"{self.cart.user.email} - {self.product.title}"
@property
def price(self):
return self.product.price
@property
def total_price(self):
return self.price * self.quantity