Как добавить изображения в python docxtpl из url

У меня есть документ docxtpl, но мне нужно добавить изображения в InlineImage с url, а не с локального диска.

Я использую Django

Так это работает (документ является DocxTemplate):

InlineImage(document,'C:/Users/sande/Pictures/myimage.png')

Но как мне это сделать?

InlineImage(document,'https://files-cdn.myhost.net/3255/ddef9d07-0a6b-4f54-801a-c016e6d41885/myimage.png')

image_descriptior не принимает url.:

Exception has occurred: OSError [Errno 22] Invalid argument:'https://files-cdn.myhost.net/3255/ddef9d07-0a6b-4f54-801a-c016e6d41885/myimage.png'

Я нашел, что делать:

В моей модели я добавил следующее (я использую модель с урлами изображений в поле char под названием ImageURL)

from django.db import models
import requests
import io

class myModel(models.Model)
    ImageURL = models.CharField(max_length=250, null=True, blank=True)
    

    @property
    def product_image(self):
        "Returns the product image"
        response = requests.get(self.ImageURL)
        image_bytes = io.BytesIO(response.content)
        return image_bytes

Вы можете использовать это свойство в классе inlineimage в docxtpl, и оно работает

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