2011-07-04 2 views
12

このウィジェットから必要なすべてのjsファイルとcssファイルをインクルードすることがアイデアです(ファイルをこのように管理するのは簡単です) 。重複したファイルは問題ではありません。 すべてのウィジェットのテンプレートをすることで、ページに含まれている私は、親のブロックにコンテンツを追加しようとしているウィジェットのテンプレートの内側から {%%を含める}:djangoテンプレート - インクルードされたテンプレートのblock.superを使用するとエラーが発生する(例外)

PARENT:

{%block js%} 
{%endblock%} 

WIDGET

{%block js%} 
    {{block.super}} 
    ///my widget spectyfic JS 
{%end block%} 
これは {{block.super}}: Caught AttributeError while rendering: 'BlockNode' object has no attribute 'context'

にエラーを与えている

私はブロックを拡張することができますどのように他わからないんだけど...それですdjangoでは不可能だ...どんなアイデア? の定義複数のブロックには...我々は何名で、我々は各ページになりますどのように多くの異なるウィジェットを知らないとして動作しません(それはnemplateの心配はありません)

+1

こんにちはrobertzp、私は同じ問題に直面している。解決策はありますか?これで私を助けてください。 – PythonDev

答えて

14

the docsから:

includeタグ「は、このサブテンプレートを解析し、それは親の一部であるかのようにその内容を含まない」として、「このサブテンプレートをレンダリングし、HTMLを含める」の実装として考えるべきです。これは、インクルードされたテンプレート間で共有状態がないことを意味します。それぞれのインクルードは、完全に独立したレンダリングプロセスです。

block.superを使用する場合は、代わりにextendsを使用する必要があります。

2

私は少し遅すぎると知っていますが、解決策があるかもしれません。 django-sekizaiを使用すると、jsとcssを1つの場所に読み込むことができます。見てくださいhttp://django-sekizai.readthedocs.org/en/latest/

関連する問題