detail product and in pack items for product

This commit is contained in:
Parsa Nazer
2025-02-05 00:31:06 +03:30
parent d2fbfd5112
commit e08429c497
11 changed files with 573 additions and 7 deletions
+42
View File
@@ -85,6 +85,18 @@ class DollorModel(models.Model):
verbose_name_plural = 'مدل دلار'
class InPackItems(models.Model):
item_title = models.CharField(max_length=50)
cover = models.ImageField(upload_to='product_items/', verbose_name='کاور ایتم')
class Meta:
verbose_name = 'ایتم داخل پک'
verbose_name_plural = 'ایتم های داخل پک'
def __str__(self):
return
class ProductModel(models.Model):
name = models.CharField(max_length=255, verbose_name='نام')
description = models.TextField(verbose_name='توضیحات')
@@ -113,6 +125,8 @@ class ProductModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True, verbose_name='زمان ثبت محصول')
category = models.ForeignKey(SubCategoryModel, null=True, on_delete=models.SET_NULL, related_name='products', verbose_name='دسته بندی محصول')
related_products = models.ManyToManyField('self', blank=True, verbose_name='محصولات مرتبط')
in_pack_items = models.ManyToManyField(InPackItems, blank=True, verbose_name='ایتم های داخل پک')
def format_discount_price(self):
discount_price = int(self.price * (100 - self.discount) / 100)
formatted_num = "{:,.0f}".format(discount_price)
@@ -152,6 +166,34 @@ class ProductModel(models.Model):
verbose_name_plural = 'محصولات'
class DetailModel(models.Model):
title = models.CharField(max_length=50, verbose_name='عنوان')
detail_text1 = models.CharField(max_length=150 , verbose_name='متن جزیات ۱')
detail_text2 = models.CharField(max_length=150 , verbose_name='متن جزیات ۲')
detail_text3 = models.CharField(max_length=150 , verbose_name='متن جزیات ۳')
detail_text4 = models.CharField(max_length=150 , verbose_name='متن جزیات ۴')
def __str__(self):
return self.title
class Meta:
verbose_name = 'مدل جزیات'
verbose_name_plural = 'مدل های جزیات'
class ProductDetailModel(models.Model):
product = models.ForeignKey(ProductModel, on_delete=models.CASCADE, verbose_name='محصول مرتبط', related_name='details')
detail = models.ManyToManyField(DetailModel, verbose_name='جزيات ها')
class Meta:
verbose_name = 'جزیات محصول'
verbose_name_plural = 'جزیات محصول ها'
def __str__(self):
return f'جزيیات محصول {self.product}'
class InStuckColors(models.Model):
color = models.CharField(_("رنگ"), null=True, blank=True, max_length=255)
in_stuck = models.PositiveIntegerField(default=0, verbose_name="تعداد موجود")