Тег Django {% include %} отображает жестко заданную строку, но не переменную
Я хочу, чтобы один шаблон наследовал переменную из другого шаблона, используя Django {% include %}
тег. Но этого не происходит.
section.html
, шаблон для наследования от:
{% block section1 %}
<p>My cows are home.</p>
--> {{ word_in_template }} <--
{% endblock %}
index.html
, который должен наследовать word_in_template
от section.html
:
{% include "section.html" with word_in_template=word_in_template %}
Я также пытался {% include "section.html" with word_in_template=word %}
,
Мой взгляд:
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})
Выход для section.html
в Chrome:
My cows are home.
--> frisky things. <--
Выход для index.html
в Chrome:
My cows are home.
--> <--
Я следую этому решению, но оно не работает для меня. "frisky things"
показывает, загружаю ли я section.html
но это не показывает на index.html
, Тем не менее, жестко закодированная строка My cows are home
появляется на index.html
,
Я думаю, что я тоже следую документации. Но я новичок, так что, возможно, я не читаю вещи правильно или что-то. Что я делаю неправильно?
1 ответ
Когда вы включаете section.html
в вашем index.html
шаблон, он не включает автоматически контекст из section
Посмотреть. Вы должны включить контекст в myblog
Посмотреть.
def myblog(request):
word = "my_word"
return render(request, 'index.html', {'word_in_template':word}))
В шаблоне правильный способ сделать это word_in_template=word_in_template
, поскольку word_in_template
является ключом в контекстном словаре.
{% include "section.html" with word_in_template=word_in_template %}