2014-11-24 72 views
9

我想在Django中使用WeasyPrint生成報告。但我不知道如何整合CSS(特別是bootstrap css文件)。我能夠看到生成的HTML。但是,我得到一個警告,當我這行添加到我的模板 -Django WeasyPrint CSS集成警告:沒有基礎URI的相對URI引用:無

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

警告是 - 沒有一個基本URI 相對URI參考:在line無

我想知道如何將基礎URI發送到模板。任何幫助,將不勝感激。

+0

爲什麼您不使用{%static%}模板標記? – 2014-11-24 06:11:47

+2

@RajaSimon對於這個問題的上下文無關緊要; '{%static%}'也產生相對URL – Joost 2015-04-22 23:47:10

回答

13

回答我自己的問題。是的,所以這簡直是荒謬可笑的。我所要做的只是添加base_url=request.build_absolute_uri()。因此,打印命令如下所示:

weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response) 
+1

請求對象來自哪裏? – Maecky 2016-08-02 12:00:50

+0

@Maecky我可能會遲到回答這個問題,但這個問題有Django標籤。我假設'request'是與所有Django視圖一起傳遞的變量。如果你在Django視圖中並且沒有'request'變量可用,那麼你可能需要使用'self.request'。 查看[Django文檔中的此頁](https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.HttpRequest.build_absolute_uri) – JerkMan 2016-11-23 16:22:20