У меня проблемы с пользовательскими менеджерами Django. Это может быть просто, но я не очень хорошо понимаю менеджеров. вот мой код:
class Season(models.Model):
id = models.AutoField(auto_created=True, primary_key=True)
sku = models.CharField(max_length=16, default=secrets.token_urlsafe(8), editable=False)
title = models.CharField(max_length=64, unique=True)
slug = models.SlugField(max_length=64, unique=True)
tutorial = models.ForeignKey(Tutorial, on_delete=models.DO_NOTHING)
created = models.DateTimeField(auto_now_add=True)
objects = models.Manager() # Default Manager
custom_obj = SeasonManager() # Custom Manager in (managers.py)
def __str__(self):
return self.title
class Lesson(models.Model):
id = models.AutoField(auto_created=True, primary_key=True)
sku = models.CharField(max_length=16, default=secrets.token_urlsafe(8), editable=False)
title = models.CharField(max_length=64, unique=True)
slug = models.SlugField(max_length=64, unique=True)
content = models.TextField()
season = models.ForeignKey(Season, on_delete=models.SET_NULL, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Video(models.Model):
id = models.AutoField(auto_created=True, primary_key=True)
sku = models.CharField(max_length=16, default=secrets.token_urlsafe(8), editable=False)
title = models.CharField(max_length=64, unique=True)
slug = models.SlugField(max_length=64, unique=True)
content = models.TextField()
view = models.PositiveIntegerField(default=0)
lesson = models.ForeignKey(Lesson, on_delete=models.SET_NULL, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
video_file = models.FileField(upload_to='tutorialApp/videos')
video_length = models.CharField(max_length=32)
def __str__(self):
return self.title
Структура следующая: в каждом сезоне есть несколько уроков, в каждом уроке есть несколько видео, а у каждого видео есть продолжительность.
Я хочу написать менеджераэто показывает сумму длин видео в сезон. (менеджер, который показывает, сколько минут видео в сезоне)
И я также не знаю, какой тип поля лучше всего подходит для переменной video_length
? На данный момент моя длина видео равна CharField, поэтому, когда я пишу 1:14, это означает, что это 1 час 14 минут. Спасибо.