Jinja doesn´t render Django view

Posted

技术标签:

【中文标题】Jinja doesn´t render Django view【英文标题】: 【发布时间】:2019-03-09 13:55:55 【问题描述】:

我正在开发一个 Django 应用程序,但 jinja 不呈现视图。我需要将这些模板分开,因为我想包含特定内容。

当我打开 data.htmldata2.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。如果您包含一个模板,它将调用相应的视图。所以ad 确实不见了。 这也是有道理的,因为不是每个视图本身都渲染一个模板,一个模板可以被多个视图渲染。 【参考方案1】:

Include 仅包含您的 html 文件,它不会调用相应的视图并为您呈现它。您应该将 ad 的值传递给 test.html,并且在包含时,它将为您呈现值以代替变量。

【讨论】:

感谢您的帮助!

以上是关于Jinja doesn´t render Django view的主要内容,如果未能解决你的问题,请参考以下文章

9 模版语言 jinja2

Flask中的模板语言Jinja2及render_template

3,Flask 中的模板语言 Jinja2 及 render_template 的深度用法

Django 与 Mako Jinja2 模板比较的集成使用:render_to_response。问题?

第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法