|
|
|
|
@ -22,15 +22,15 @@ class Course(models.Model): |
|
|
|
|
(2, 'Archived'), |
|
|
|
|
) |
|
|
|
|
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) |
|
|
|
|
title = models.CharField("Название курса", max_length=100) |
|
|
|
|
short_description = models.TextField("Краткое описание курса") |
|
|
|
|
from_author = models.TextField("От автора", default='') |
|
|
|
|
cover = models.ImageField("Фон курса", upload_to='courses') |
|
|
|
|
price = models.DecimalField("Цена курса", help_text="Если цены нету, то курс бесплатный", max_digits=10, decimal_places=2, null=True, blank=True) |
|
|
|
|
title = models.CharField('Название курса', max_length=100) |
|
|
|
|
short_description = models.TextField('Краткое описание курса') |
|
|
|
|
from_author = models.TextField('От автора', default='') |
|
|
|
|
cover = models.ImageField('Фон курса', upload_to='courses') |
|
|
|
|
price = models.DecimalField('Цена курса', help_text='Если цены нету, то курс бесплатный', max_digits=10, decimal_places=2, null=True, blank=True) |
|
|
|
|
is_infinite = models.BooleanField(default=False) |
|
|
|
|
deferred_start_at = models.DateTimeField("Отложенный запуск курса", help_text="Заполнить если курс отложенный", null=True, blank=True) |
|
|
|
|
category = models.ForeignKey("Category", on_delete=models.PROTECT) |
|
|
|
|
duration = models.IntegerField("Продолжительность курса", default=0) |
|
|
|
|
deferred_start_at = models.DateTimeField('Отложенный запуск курса', help_text='Заполнить если курс отложенный', null=True, blank=True) |
|
|
|
|
category = models.ForeignKey('Category', on_delete=models.PROTECT) |
|
|
|
|
duration = models.IntegerField('Продолжительность курса', default=0) |
|
|
|
|
is_featured = models.BooleanField(default=False) |
|
|
|
|
url = models.URLField('Ссылка', default='') |
|
|
|
|
status = models.PositiveSmallIntegerField('Статус', default=0, choices=STATUS_CHOICES) |
|
|
|
|
@ -66,27 +66,27 @@ class Course(models.Model): |
|
|
|
|
return self.title |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
verbose_name = "Курс" |
|
|
|
|
verbose_name_plural = "Курсы" |
|
|
|
|
verbose_name = 'Курс' |
|
|
|
|
verbose_name_plural = 'Курсы' |
|
|
|
|
ordering = ['-created_at'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Category(models.Model): |
|
|
|
|
title = models.CharField("Название категории", max_length=100) |
|
|
|
|
title = models.CharField('Название категории', max_length=100) |
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
|
return self.title |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
verbose_name = "Категория" |
|
|
|
|
verbose_name_plural = "Категории" |
|
|
|
|
verbose_name = 'Категория' |
|
|
|
|
verbose_name_plural = 'Категории' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Lesson(models.Model): |
|
|
|
|
title = models.CharField("Название урока", max_length=100) |
|
|
|
|
short_description = models.TextField("Краткое описание курса") |
|
|
|
|
title = models.CharField('Название урока', max_length=100) |
|
|
|
|
short_description = models.TextField('Краткое описание курса') |
|
|
|
|
course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='lessons') |
|
|
|
|
cover = models.ImageField("Фон урока", upload_to='lessons') |
|
|
|
|
cover = models.ImageField('Фон урока', upload_to='lessons') |
|
|
|
|
|
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True) |
|
|
|
|
update_at = models.DateTimeField(auto_now=True) |
|
|
|
|
@ -95,6 +95,6 @@ class Lesson(models.Model): |
|
|
|
|
return self.title |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
verbose_name = "Урок" |
|
|
|
|
verbose_name_plural = "Уроки" |
|
|
|
|
verbose_name = 'Урок' |
|
|
|
|
verbose_name_plural = 'Уроки' |
|
|
|
|
ordering = ('title',) |
|
|
|
|
|