from django.db import models from polymorphic.models import PolymorphicModel from apps.course.models import Course, Lesson class Content(PolymorphicModel): course = models.ForeignKey( Course, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Курс' ) lesson = models.ForeignKey( Lesson, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Урок' ) title = models.CharField('Заголовок', max_length=100, default='') position = models.PositiveSmallIntegerField( 'Положение на странице', default=1, unique=True ) created_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) class Meta: verbose_name = 'Контент' verbose_name_plural = 'Контент' ordering = ('-created_at',) class Image(Content): img = models.ImageField('Изображение', upload_to='content/images') class Text(Content): txt = models.TextField('Текст', default='') class ImageText(Content): img = models.ImageField('Изображение', upload_to='content/images') txt = models.TextField('Текст', default='') class Video(Content): url = models.URLField('Ссылка') class Gallery(models.Model): course = models.ForeignKey( Course, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Курс' ) title = models.CharField('Заголовок', max_length=100, default='') created_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) class Meta: verbose_name = 'Галерея' verbose_name_plural = 'Галереи' ordering = ('-created_at',) class GalleryImage(models.Model): gallery = models.ForeignKey( Gallery, on_delete=models.CASCADE, verbose_name='Галерея' ) image = models.ImageField( 'Изображение', upload_to='content/gallery_images' ) created_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) class Meta: verbose_name = 'Изображение в галерее' verbose_name_plural = 'Изображения в галерее' ordering = ('-created_at',)