from django.db import models from polymorphic.models import PolymorphicModel class ImageObject(models.Model): image = models.ImageField('Изображение', upload_to='content/imageobject') 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 Content(PolymorphicModel): course = models.ForeignKey( 'course.Course', on_delete=models.CASCADE, null=True, blank=True, verbose_name='Курс', related_name='content', ) lesson = models.ForeignKey( 'course.Lesson', on_delete=models.CASCADE, null=True, blank=True, verbose_name='Урок', related_name='content', ) title = models.CharField('Заголовок', max_length=100, default='') position = models.PositiveSmallIntegerField( 'Положение на странице', default=1, ) 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.ForeignKey( ImageObject, related_name='content_images', verbose_name='Объект изображения', on_delete=models.CASCADE, ) class Text(Content): txt = models.TextField('Текст', default='') class ImageText(Content): img = models.ForeignKey( ImageObject, related_name='content_imagetexts', verbose_name='Объект изображения', on_delete=models.CASCADE, ) txt = models.TextField('Текст', default='') class Video(Content): url = models.URLField('Ссылка') class Gallery(Content): pass class GalleryImage(models.Model): gallery = models.ForeignKey( Gallery, on_delete=models.CASCADE, verbose_name='Галерея', related_name='gallery_images' ) img = models.ForeignKey( ImageObject, related_name='gallery_images', verbose_name='Объект изображения', on_delete=models.CASCADE, null=True, blank=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',)