Как сохранить файл изображения в django obj

Я пытаюсь установить файл изображения из локального пути в модель GameFilm, но проблема в том, что print(File(open(path, 'rb'))) возвращает None, поэтому когда я делаю obj.thumbnail = File(open(path, 'rb')), он просто устанавливает obj.thumbnail значение None.

Моя модель


class GameFilm(models.Model):
    thumbnail = models.ImageField(null=True, blank=True, upload_to='images/')
    created_at = models.DateTimeField(default=timezone.now)
    created_by = models.ForeignKey('users.User', on_delete=models.PROTECT, null=True, blank=True,
                                   related_name='game_films')
    title = models.CharField(max_length=150)
    description = models.TextField()
    film = models.FileField(upload_to='films/')

Функция "Моя проблема"

  • Здесь я извлекаю изображение на миллисекунде 200 из видео по пути video_path. Затем я пытаюсь открыть файл и установить его по пути obj.thumbnail. Затем django должен загрузить его на aws s3. Наконец, я удалю только что созданный локальный образ.
vidcap = cv2.VideoCapture(video_path)
millisecond = 200
vidcap.set(cv2.CAP_PROP_POS_MSEC, millisecond)
success, image = vidcap.read()
if success: cv2.imwrite("framed.jpg", image)  # save frame as JPEG file

path =  f'{settings.BASE_DIR}/framed.jpg'

obj = GameFilm.objects.get(id=1)
obj.thumbnail = File(open(path, 'rb'))
obj.save()
os.remove(f'{settings.BASE_DIR}/framed.jpg')
Вернуться на верх