from django.db import models from product.models import ProductModel from django.urls import reverse class SliderModel(models.Model): link = models.URLField(verbose_name='لینک') title = models.CharField(max_length=50, verbose_name='عنوان') description = models.TextField(verbose_name='توضیحات') image = models.ImageField(upload_to='slider_image/', blank=True, null=True, verbose_name='عکس اسلایدر') video = models.FileField(upload_to='slider_video/', blank=True, null=True, verbose_name='ویدیواسلایدر') def __str__(self): return self.title class Meta: verbose_name = 'اسلایدر' verbose_name_plural = 'اسلایدر ها' class HomeImageModel(models.Model): image1 = models.ImageField(upload_to='diff_section/', verbose_name='عکس اول') image2 = models.ImageField(upload_to='diff_section/', verbose_name='عکس دوم') title1 = models.CharField(max_length=50, verbose_name='عنوان عکس اول') title2 = models.CharField(max_length=50, verbose_name='عنوان عکس دوم') description1 = models.TextField(verbose_name='توضیحات عکس اول') description2 = models.TextField(verbose_name='توضیحات عکس دوم') link1 = models.URLField(verbose_name='لینک عکس اول') link2 = models.URLField(verbose_name='لینک عکس دوم') video1 = models.FileField(verbose_name='ویدیو اول', upload_to='diff_section/', null=True) video2 = models.FileField(verbose_name='ویدیو دوم', upload_to='diff_section/', null=True) unique = (('unique', 'unique'),) unique_filed = models.CharField(max_length=20, choices=unique, unique=True, default='unique', verbose_name='یونیک فیلد') def __str__(self): return f'{self.title1} - {self.title2}' class Meta: verbose_name = 'مدل عکس تفاوت خانه' verbose_name_plural = 'مدل عکس تفاوت خانه' class ShowCaseSlider(models.Model): title = models.CharField(max_length=30, verbose_name='عنوان') description = models.CharField(max_length=150, verbose_name='توضیحات') link = models.URLField(verbose_name='لینک') image = models.ImageField(upload_to='show_case/', verbose_name='عکس') def __str__(self): return self.title class Meta: verbose_name = 'مدل نمایش کیس' verbose_name_plural = 'مدل نمایش کیس ها' from django.contrib.contenttypes.models import ContentType class LearnVideoModel(models.Model): title = models.CharField(max_length=100, verbose_name='عنوان ویدیو') section = models.CharField(max_length=40, verbose_name='بخش مربوطه') video = models.FileField(upload_to='learning_video/', verbose_name='ویدیو') content_type = models.OneToOneField( ContentType, on_delete=models.CASCADE, verbose_name='مدل مرتبط', blank=True, null=True, unique=True ) icon = models.CharField(max_length=30, verbose_name='ایکون') viewd = models.BooleanField(default=False, verbose_name='تماشا شده') @property def section_url(self): if not self.content_type: return None app_label = self.content_type.app_label model_name = self.content_type.model try: return reverse(f'admin:{app_label}_{model_name}_changelist') except Exception: return None def __str__(self): return self.title class Meta: verbose_name = 'ویدیوی اموزشی' verbose_name_plural = 'ویدیوی های اموزشی'