from django.db import models from django.db.models.signals import pre_delete from django.dispatch import receiver from .tasks import create_hls_tasks # Create your models here. VIDEO_GENDER = ( (1, "male"), (2, "female"), (3, "anything goes"), ) class Video(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) video_file = models.FileField(upload_to='videos/', null=True, verbose_name="") gender = models.PositiveSmallIntegerField( choices=VIDEO_GENDER ) def __str__(self): return str(self.video_file) def save(self, **kwargs): super(Video, self).save(**kwargs) filename = self.video_file.name create_hls_tasks.delay(filename) class ExerciseVideo(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) video_file = models.FileField(upload_to='videos/', null=True, verbose_name="") def save(self, **kwargs): super(ExerciseVideo, self).save(**kwargs) filename = self.video_file.name create_hls_tasks.delay(filename) @receiver(pre_delete, sender=ExerciseVideo) def delete_exercise_video(sender, instance, using, **kwargs): video_file = instance.video_file video_file.delete(save=False)