【发布时间】:2021-08-27 12:39:52
【问题描述】:
我无法计算总持续时间。这里视频有持续时间,即 DurationField()。我对如何计算所有视频的总时长感到困惑。
Model
class VideoDetails(BaseModel, Timestamps, SoftDelete):
video_name = models.CharField(max_length=254, null=False, blank=False)
video_about_text = models.CharField(max_length=254, null=False, blank=False)
duration = models.DurationField()
video = models.OneToOneField(Video, on_delete=models.CASCADE)
class CourseModuleVideos(Timestamps, SoftDelete):
module_id = models.ForeignKey(CourseModule, on_delete=models.CASCADE)
video_id = models.ForeignKey(Video, on_delete=models.CASCADE)
class Video(BaseModel, Timestamps, SoftDelete):
create_date = models.DateTimeField(auto_now_add=True, null=True)
view
z = CourseModuleVideos.objects.filter(module_id=o)
for zo in z:
print('o', zo.video_id)
x = VideoDetails.objects.filter(video=zo.video_id).aggregate(sum('duration'))
print(x.duration)
出现错误
"unsupported operand type(s) for +: 'int' and 'str'"
给我一个解决这个问题的方法。
【问题讨论】:
-
你能分享
CourseModuleVideos的模型吗? -
此外,请提供完整回溯。
-
class CourseModuleVideos(Timestamps): module_id = models.ForeignKey(CourseModule, on_delete=models.CASCADE) video_id = models.ForeignKey(Video, on_delete=models.CASCADE)
-
请edit 提问。使用
CourseModuleVideos和Video模型。 -
您能解释一下从
VideoDetails到Video或反之亦然的ForeignKey的位置吗?