Django {% include %}
タグを使用して1つのテンプレートに別のテンプレートの変数を継承させます。しかし、それは起こっていない。Django {%include%}タグは、ハードコードされた文字列を表示しますが、変数を表示しません。
section.html
、継承するテンプレート:
section.html
から
word_in_template
を継承する必要があり
{% block section1 %}
<p>My cows are home.</p>
--> {{ word_in_template }} <--
{% endblock %}
index.html
、:
{% include "section.html" with word_in_template=word_in_template %}
私も{% include "section.html" with word_in_template=word %}
を試してみました。
マイビュー:Chromeでsection.html
ため
def myblog(request):
return render_to_response('index.html')
def section(request):
word = "frisky things."
return render_to_response('section.html', {'word_in_template':word})
出力:
My cows are home.
--> frisky things. <--
Chromeでindex.html
用の出力:
My cows are home.
--> <--
私は次のよthis solutionが、それはしません私のために働く。 "frisky things"
は、section.html
をロードするかどうかを示しますが、index.html
には表示されません。ただし、ハードコードされた文字列My cows are home
がindex.html
に表示されます。
私もdocumentationに従っていると思います。しかし、私は新しいので、私は物事を正しく読んでいないかもしれません。私は間違って何をしていますか?
'render_to_response'は廃止されていることに注意してください。代わりに' render'を使用してください。 – Alasdair
ブロックは、テンプレートの継承を使用して別のテンプレートを拡張する場合に便利です。 '{%extends 'base.html'%}'。 '{%include%}'を使うときは、テンプレートの継承を使わないので、 '{%block section1%}'を 'section.html'テンプレートに含めることは意味がありません。 – Alasdair
これらもありがとう! – nusantara