【问题标题】:Jinja doesn´t render Django viewJinja 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 确实不见了。
  • 这也是有道理的,因为不是每个视图本身都渲染一个模板,一个模板可以被多个视图渲染。

标签: django django-templates django-views jinja2


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 2022-12-02
  • 2022-12-27
  • 2022-12-01
  • 2022-12-01
  • 2022-12-27
  • 2022-12-01
  • 2022-12-26
  • 2022-12-27
  • 2022-12-02
相关资源
最近更新 更多