Files
2026-05-06 10:27:08 +03:30

88 lines
4.0 KiB
Python

from django.db import models
from django.urls import reverse
class SliderModel(models.Model):
id = models.BigAutoField(auto_created=True, db_index=True, primary_key=True, serialize=False, verbose_name='ID')
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='توضیحات')
image1 = models.ImageField(upload_to='show_case/', verbose_name='۱عکس', blank=True, null=True)
image2 = models.ImageField(upload_to='show_case/', verbose_name='۲عکس', blank=True, null=True)
image3 = models.ImageField(upload_to='show_case/', verbose_name='۳عکس', blank=True, null=True)
background_image = models.FileField(upload_to='show_case/', verbose_name='عکس بکگراند', blank=True, null=True)
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 = 'ویدیوی های اموزشی'