From 7dd8caf6ccbd23195096045d52799c37de7e682a Mon Sep 17 00:00:00 2001 From: Sumeet2005 Date: Tue, 5 Aug 2025 19:52:29 +0530 Subject: [PATCH] Update models.py --- home/models.py | 61 +++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/home/models.py b/home/models.py index 3caafb9..e377499 100644 --- a/home/models.py +++ b/home/models.py @@ -1,44 +1,53 @@ from django.db import models from django.utils import timezone -# Create your models here. + class BookCategory(models.Model): - name = models.CharField(max_length=50) - def __str__(self): - return self.name + name = models.CharField(max_length=50) + + class Meta: + verbose_name_plural = "Book Categories" + + def __str__(self): + return self.name class Book(models.Model): - book_category = models.IntegerField() - book_name = models.CharField(max_length=500) - author_name = models.CharField(max_length=500) - book_description = models.TextField(max_length=500) - book_image = models.FileField(null=True,blank=True) - book_price = models.IntegerField() + book_category = models.ForeignKey(BookCategory, on_delete=models.CASCADE, related_name='books') + book_name = models.CharField(max_length=500) + author_name = models.CharField(max_length=500) + book_description = models.TextField(max_length=500) + book_image = models.FileField(null=True, blank=True, upload_to='book_images/') + book_price = models.IntegerField() - def __str__(self): - return self.book_name + def __str__(self): + return self.book_name class User(models.Model): - user_name = models.CharField(max_length=255) - email_id = models.EmailField(max_length=255) - password = models.CharField(max_length=255) - name = models.CharField(max_length=255,default='') - shipping_addr = models.CharField(max_length=255,default='') - phone_no = models.CharField(max_length=255,default='') - - def __str__(self): - return self.user_name + self.email_id + self.password + user_name = models.CharField(max_length=255) + email_id = models.EmailField(max_length=255, unique=True) + password = models.CharField(max_length=255) + name = models.CharField(max_length=255, default='') + shipping_addr = models.CharField(max_length=255, default='') + phone_no = models.CharField(max_length=20, default='') + def __str__(self): + return f'{self.user_name} ({self.email_id})' class Cart(models.Model): - user_id = models.IntegerField() - order_item = models.IntegerField() + user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='cart_items') + book = models.ForeignKey(Book, on_delete=models.CASCADE) + + def __str__(self): + return f'Cart Item: {self.user.user_name} - {self.book.book_name}' class Order(models.Model): - delivery_user_id = models.IntegerField() - date_placed = models.DateTimeField() - order_items = models.CharField(max_length=255) + delivery_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders') + date_placed = models.DateTimeField(default=timezone.now) + order_items = models.ManyToManyField(Book) + + def __str__(self): + return f'Order #{self.id} by {self.delivery_user.user_name} on {self.date_placed.strftime("%Y-%m-%d %H:%M")}'