我有以下情况:
return render(request, 'template1.html', {'var1': 'value1'} )
return render(request, 'template2.html', {'var2': 'value2' } )
{% block foo %}
{{ var1 }}
{% endblock %}
{% extends template1.html %}
{% block foo %}
{{ block.super }}
{{ var2 }}
{% endblock %}
value1
value1
value1 value2
value2
为什么在调用{{block.super}}时不会输出'var1'的值?
我在settings.py中定义了'django.core.context_processors.request'。我错过了什么?
答案 0 :(得分:2)
template2.html扩展了template1.html,但这并不意味着view2扩展了view1。您需要将var1添加到view2中的上下文信息。
# view2
return render(request, 'template2.html', {
'var1': 'value1',
'var2': 'value2'
})
答案 1 :(得分:1)
如果您未在var1
的上下文中提供view2
,那么您认为该模板将如何获得它?将您的settings.TEMPLATE_STRING_IF_INVALID
更改为空字符串以外的其他内容,您就会知道var1
未显示的原因...