2

我有以下情况:

2 意见:

视图1:

return render(request, 'template1.html', {'var1': 'value1'} )

视图2:

return render(request, 'template2.html', {'var2': 'value2' } )

2个模板:

模板1.html

{% block foo %}
{{ var1 }}
{% endblock %}

模板2.html

{% extends template1.html %}
{% block foo %}
{{ block.super }}
{{ var2 }}
{% endblock %}

Template1.html 的所需输出:

value1

Template1.html 的实际输出:

value1

Template2.html 的所需输出:

value1 value2

实际输出:

value2

为什么调用 {{block.super}} 时没有输出 'var1' 的值?

我在我的 settings.py 中定义了“django.core.context_processors.request”。我错过了什么?

4

2 回答 2

2

template2.html 扩展了 template1.html,但这并不意味着 view2 扩展了 view1。您需要将 var1 添加到 view2 中的上下文信息中。

# view2
return render(request, 'template2.html', {
    'var1': 'value1',
    'var2': 'value2'
})
于 2014-01-21T18:49:58.920 回答
1

如果您没有var1在上下文中提供,view2那么您认为模板将如何获取它?将您更改settings.TEMPLATE_STRING_IF_INVALID为空字符串以外的其他内容,您就会知道为什么var1不显示...

于 2014-01-21T18:48:26.113 回答