Как фильтровать цепочку полей : 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')