84 lines
3.5 KiB
Python
84 lines
3.5 KiB
Python
from django.db import models
|
|
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='توضیحات')
|
|
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 = 'ویدیوی های اموزشی' |