Потому что weasyprint это не xhtml2pdf! Не надо пытаться передать ему данные о картинке во вьюшке, он такое не понимает. Когда мы печатаем pdf из html'ки с помощью xhtml2pdf, мы в питоновскую функцию во views.py передаём данные. Это выглядит примерно так: views.py:
from xhtml2pdf import pisa
from urllib.parse import quote
def download_pdf(request, pk):
winner = Winner.objects.get(pk=pk)
template_path = 'magicflot/pdf.html'
back_full = 'https://кириллический-домен-который-захотел-заказчик.рф/static/pdf/back_full.png'
e_back_full = quote(back_full.encode('utf-8'), safe='/')
context = {
'winner': winner,
'e_back_full':e_back_full,
}
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = f'attachment; filename="certificate_{winner.last_name}_{winner.first_name}.pdf"'
template = get_template(template_path)
html = template.render(context)
pisa_status = pisa.CreatePDF(html, dest=response)
if pisa_status.err:
return Htt