Сохранение изображений из веб-скраппинга в Django

У меня есть такая модель:

#models.py
class Post(models.Model):
    cover = models.ImageField(upload_to="news/", blank=True, max_length=255)

У меня есть функция для извлечения или скрапирования веб-сайта, например, такая:

#views.py
def pull_feeds(request, pk):
    source = Autoblogging.objects.get(pk=pk)
    url = requests.get(source.url)
    soup = BeautifulSoup(url.content, "html.parser")

    img_link = body[body.find('src=')+5:body.find('alt')-2]
    resp = requests.get(img_link)
    fp = BytesIO()
    fp.write(resp.content)
    file_name = img_link.split("/")[-1]
    
    post = Post()
    post.cover.save(file_name, files.File(fp))

Я создал эту функцию, используя эту ссылку: https://stackoverflow.com/a/43650607/14288119

Но это работает только тогда, когда нет файла настроек production. Если файл production.py существует, он возвращает ошибку "Empty file"

Это мой settings/production.py:

import os
import dj_database_url
from .base import *

SECRET_KEY = os.environ.get('SECRET_KEY', 'your-default-secret-key')

DEBUG = False
ALLOWED_HOSTS = ['topvineyards.herokuapp.com']


INSTALLED_APPS += [
    'cloudinary',
    'cloudinary_storage',
]


db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)


# Cloudinary config
CLOUDINARY_STORAGE = {
    'CLOUD_NAME': os.environ.get('CLOUD_NAME'),
    'API_KEY': os.environ.get('CLOUD_API_KEY'),
    'API_SECRET': os.environ.get('CLOUD_API_SECRET')
}
DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'


CORS_REPLACE_HTTPS_REFERER = True
HOST_SCHEME = "https://"
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_SECONDS = 1000000
SECURE_FRAME_DENY = True

Кто-нибудь знает, почему появляется эта ошибка? Или у кого-нибудь есть решение этой проблемы (сохранить изображение с другого сайта в поле изображения моего django)?

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