Сохраните изображение из RSS-канала в поле изображения Django
У меня есть такая модель:
#models.py
class Post(models.Model):
cover = models.ImageField(upload_to="news/", blank=True, max_length=255)
Затем я извлек url изображения из RSS-канала с помощью BeautifulSoup4:
#views.py
def pull_feeds(request, pk):
source = Autoblogging.objects.get(pk=pk)
url = requests.get(source.url)
soup = BeautifulSoup(url.content, "html.parser")
cover = soup.find('media:content')['url']
Post.objects.create(cover=cover)
Подача контента выглядит следующим образом
<media:content url="https://travelcommunication.net/wp-content/uploads/2021/10/Raffles-Hotels-Bring-Legendary-Hospitality-Experience-to-Romantic-Udaipur-TRAVELINDEX-TOP25HOTELS-500x300.jpg" width="500" height="300" medium="image" type="image/jpeg"/>
Но он сохраняет только url, а не файл изображения. Как сохранить реальный файл изображения, а не url к нему?
Вы можете послать еще один GET
запрос на изображение и записать ответ в файл:
...
image = requests.get(cover)
with open("image.png", "wb") as f:
f.write(image.content)