change color image video field and place it in product varient model

This commit is contained in:
Parsa Nazer
2025-02-11 23:02:08 +03:30
parent 4234418e51
commit d8a588ca86
5 changed files with 157 additions and 36 deletions
+19 -4
View File
@@ -111,7 +111,6 @@ 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='ایتم های داخل پک')
@@ -198,15 +197,27 @@ class AttributeType(models.Model):
class AttributeValue(models.Model):
attribute_type = models.ForeignKey(AttributeType, on_delete=models.CASCADE, blank=True, null=True)
value = models.CharField(verbose_name='مقدار نوع اتربیوت', max_length=100, blank=True, null=True)
color = models.CharField(verbose_name='رنک', max_length=7, blank=True, null=True)
image = models.ImageField(upload_to='product_images/')
video = models.FileField(upload_to='product_videos/', blank=True, null=True, verbose_name='ویدیو')
class Meta:
unique_together = ('attribute_type', 'value')
def __str__(self):
return f"{self.attribute_type.name}: {self.value}"
class ProductImageModel(models.Model):
name = models.CharField(max_length=30, verbose_name='نام عکس')
image = models.ImageField(upload_to='product_images/')
def __str__(self):
return self.name
class Meta:
verbose_name = 'عکس محصولات'
verbose_name_plural = 'عکس های محصولات'
class ProductVariant(models.Model):
product = models.ForeignKey(ProductModel, on_delete=models.CASCADE, related_name='variants', verbose_name='محصول')
attributes = models.ManyToManyField(AttributeValue, verbose_name='ویژگی‌ها', related_name='variant')
@@ -219,9 +230,13 @@ class ProductVariant(models.Model):
('toman', 'تومان'),
('derham', 'درهم')
)
in_pack_items = models.ManyToManyField(InPackItems, blank=True, verbose_name='ایتم های داخل پک')
sell = models.IntegerField(default=0, verbose_name='فروش')
currency = models.CharField(verbose_name='نوع ارز', max_length=20, choices=currency_type)
discount = models.SmallIntegerField(default=0, verbose_name='تخفیف')
color = models.CharField(verbose_name='رنک', max_length=7, blank=True, null=True)
images = models.ManyToManyField(ProductImageModel, verbose_name='عکس ها')
video = models.FileField(upload_to='product_videos/', blank=True, null=True, verbose_name='ویدیو')
class Meta:
verbose_name = 'تنوع محصول'
verbose_name_plural = 'تنوع‌های محصول'