Estou usando o reportlab pdfgen para criar um PDF. No PDF, há uma imagem criada por drawImage
. Para isso, eu preciso do URL de uma imagem ou do caminho para uma imagem na exibição. Consegui criar o URL, mas como obteria o caminho local da imagem?
Como obtenho o URL:
prefix = 'https://' if request.is_secure() else 'http://'
image_url = prefix + request.get_host() + STATIC_URL + "images/logo_80.png"
request.build_absolute_uri
conforme descrito aqui: stackoverflow.com/questions/2345708/…from django.templatetags.static import static
vez disso.A resposta do dyve é boa, no entanto, se você estiver usando "armazenamento em cache" em seu projeto django e os caminhos de URL finais dos arquivos estáticos devem receber "hash" (como style.aaddd9d8d8d7.css de style.css ), então você Não é possível obter um URL preciso
django.templatetags.static.static()
. Em vez disso, você deve usar a tag template dedjango.contrib.staticfiles
para obter um URL com hash.Além disso, no caso de usar o servidor de desenvolvimento, esse método de tag de modelo retorna um URL sem hash, para que você possa usar esse código, independentemente do host que estiver em desenvolvimento ou produção! :)
fonte
aqui está outra maneira! (testado no Django 1.6)
fonte
staticfiles_storage.url(path, force=True)
Use a
static
tag padrão :Há outra tag
django.contrib.staticfiles.templatetags.staticfiles
(como na resposta aceita), mas foi descontinuada no Django 2.0+.fonte
No Django 3.0, você deve usar
from django.templatetags.static import static
:fonte
A resposta do @ dyve não funcionou para mim no servidor de desenvolvimento. Em vez disso, eu resolvi isso
find
. Aqui está a função:fonte
Se você deseja obter uma URL absoluta (incluindo protocolo, host e porta), pode usar a
request.build_absolute_uri
função mostrada abaixo:fonte