Как фильтровать цепочку полей : Django RestFramework

Как получить поле duration из таблицы video, В моем проекте есть две таблицы, связанные с видео

models.py

class Video(BaseModel, Timestamps, SoftDelete):
    video_name = models.CharField(max_length=254, null=True, blank=True)
    description = models.TextField(null=True, blank=True)
    duration = models.DurationField(null=True, blank=True)


class VideoDetails(BaseModel, Timestamps, SoftDelete):
    max_attempt_allowed = models.PositiveSmallIntegerField()
    amount = models.DecimalField(max_digits=19, decimal_places=2)
    video = models.OneToOneField(Video, on_delete=models.CASCADE)

Здесь я хочу вычислить общую продолжительность курса, для этого создана функция:

def get_duration(course_id):
    print('course', course_id)
    hour = VideoDetails.objects.filter(video__coursemodulevideos__module_id__coursesectionmodule__section_id__coursesectiondetails__course=course_id).aggregate(Sum('duration'))
    print('h', hour)

"час = VideoDetails.objects.filter(video__coursemodulevideos__module_id__coursesectionmodule__section_id__coursesectiondetails__course=course_id).aggregate(Sum('duration'))"

через вышеуказанную строку как получить длительность из видео модели, подскажите решение для исправления этой ситуации

модель курса:

class Course(BaseModel, Timestamps, SoftDelete):

    name = models.CharField(_("Course Name"), max_length=50, blank=True, null=True, unique=True)
    description = models.CharField(_("Course Description"), max_length=100, blank=True, null=True)

    beneficiary = models.ManyToManyField(Beneficiary, blank=True, related_name='beneficiary')
    keyarea = models.ForeignKey(KeyArea, on_delete=models.CASCADE, null=True)
    subject = models.ForeignKey(Subject, on_delete=models.CASCADE, null=True)
    is_free = models.BooleanField(default=False)

    section = models.ManyToManyField(CourseSection, blank=True, through='CourseSectionDetails')

Вернуться на верх