2017-03-17 5 views
0

View/Requestを使用する代わりにDjango(1.8)render_to_stringを使用してhtmlからpdfに変換して管理コマンドを使用しようとしています。次のコードは、テンプレートをpdfに変換できます。しかし、CSSをテンプレートにロードすることはできません。文字列へのDjangoレンダリングでCSSが読み込まれない

def html_to_pdf(): 
    ... 
    context = {'some_key': 'some_value'} 
    html = render_to_string('my_app/sample.html', context) 
    file.write(html) 
    ... 

sample.html

{% load static %} 
<link href="{% static 'my_app/css/sample.css' %}" rel="stylesheet" type="text/css"/> 

はまた、私は設定ファイルに静的に定義されている:私のDjangoのプロジェクトで

STATIC_URL = '/static/' 

、ロードすることができ、別のビュー機能がありますURLが呼び出されたときにCSSが付いたテンプレート。ですから、この問題にはrender_to_stringと関係があると思います。

誰でも手伝うことができますか?

+0

あなたはこれを解決するために管理していましたか?私は同じ問題を抱えている。 Chrisに感謝します。 –

答えて

0

あなたのテンプレートのコンテキストプロセッサで1.10のためのDjangoの< 1.10またはdjango.template.context_processors.staticためdjango.core.context_processors.staticを持っていると仮定すると、問題はあなたが単純なコンテキスト辞書を渡しているで、ビュー内のrenderであなたは魔法のように自動的に一握りを移入RequestContextを取得するのに対し、あなたの設定にどのようなコンテキストプロセッサを持っているかに基づいています。この場合、context processorは、STATIC_URLという名前の変数に設定内の同じ変数の値を設定します。

+0

私は1.8を使用しており、私の設定でcontext_processors.staticを持っています。コンテキスト辞書にstatic_urlを手動で追加することは可能ですか? –

+0

ちょうど追加しようとしました:context ['STATIC_URL'] = '/ static /'、まだ動作しませんでした –

+0

テンプレートにCSSコードを入れてください! – Lemayzeur

0

あなたは試みることができる:

from django.template.loader import get_template 


html = get_template("my_app/sample.html") 
context = {'some_key': 'some_value'} 
html_content = html.render(context) 
file.write(html_content) 
+0

私はこの方法を試しました、うまくいきませんでした。 –

関連する問題