I want to generate reports using WeasyPrint in Django. But I don't know how to integrate the css (specifically the bootstrap css file). I am able to see the generated html. But I get a warning when I add this line to my template-

<link href="/static/css/bootstrap.min.css" rel="stylesheet"/>

The warning is - Relative URI reference without a base URI: at line None

I would like to know how to send the base URI to the template. Any help would be appreciated.

2

There are 2 answers

3
aishpant On BEST ANSWER

I had to add base_url=request.build_absolute_uri(). So the print command looks like:

weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response)
0
Liza Amatya On

Adding '/' to request.build_absolute_uri() worked for me -> request.build_absolute_uri('/'):

weasyprint.HTML(string=html,base_url=request.build_absolute_uri('/')).write_pdf(response)