Jinja doesn´t render Django view
Posted
技术标签:
【中文标题】Jinja doesn´t render Django view【英文标题】: 【发布时间】:2019-03-09 13:55:55 【问题描述】:我正在开发一个 Django 应用程序,但 jinja 不呈现视图。我需要将这些模板分开,因为我想包含特定内容。
当我打开 data.html 和 data2.html 时,我可以看到值“1”和“4”。但是当我打开 test.html 时,我看不到这些值。并且多个 % extends % 不起作用。
如何将 data.html 和 data2.html 加载到带有渲染数据的 test.html 中?
我对 Django 的看法:
def data1(request):
return render(request, 'user_backend/pages/data.html','a':1,
"b":2,
"c":3)
def data2(request):
return render(request, 'user_backend/pages/data2.html','d':4,
"e":5,
"f":6)
def test_temp(request):
return render(request,"user_backend/pages/test.html")
我的模板:
test.html
% load staticfiles %
<h1>Data from data.html</h1>
% include "user_backend/pages/data.html" %
% include "user_backend/pages/data2.html" %
data.html
<p>Data = a </p>
data2.html
<p>Data2 = d </p>
【问题讨论】:
你在没有参数的情况下渲染test.html
。如果您包含一个模板,它将不调用相应的视图。所以a
和d
确实不见了。
这也是有道理的,因为不是每个视图本身都渲染一个模板,一个模板可以被多个视图渲染。
【参考方案1】:
Include 仅包含您的 html 文件,它不会调用相应的视图并为您呈现它。您应该将 a
和 d
的值传递给 test.html,并且在包含时,它将为您呈现值以代替变量。
【讨论】:
感谢您的帮助!以上是关于Jinja doesn´t render Django view的主要内容,如果未能解决你的问题,请参考以下文章
Flask中的模板语言Jinja2及render_template
3,Flask 中的模板语言 Jinja2 及 render_template 的深度用法
Django 与 Mako Jinja2 模板比较的集成使用:render_to_response。问题?