Django模板变量不呈现

Posted

技术标签:

【中文标题】Django模板变量不呈现【英文标题】:Django template variable not rendering 【发布时间】:2021-08-17 08:00:00 【问题描述】:

所以我试图渲染一个 django 模板变量,但由于某种原因它没有渲染出来。

我有以下代码:

Views.py

...
def get_search(request, *args, **kwargs):
    context = 
    context = "test":"abcde"
    return render(request, 'search.html', context)
...

Urls.py

urlpatterns = [
    path("", home_view),
    path("articles/", include("papers.urls")),
    path("admin/", admin.site.urls),
    path("search/", search_view),
    path("submit/", submit_article_view, name="submit"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

search.html

extends 'base.html'
% block content %
<p>  test  hi </p>
...
% endblock %

base.html

% load static %
<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type ="text/css" href="% static 'css/stylesheet.css' %">
</head>
<header>
% include 'navbar.html' %
</header>
<body>
    % block content %

    % endblock %
</body>
<footer>
% include 'footer.html' %
</footer>
</html>

现在,每当我运行服务器并转到搜索页面时,其他所有内容都会呈现出来,但 test 不会。 “嗨”确实被渲染出来了。我已经按照那里的每个教程和 *** 问题进行了操作,但无济于事。有人知道会发生什么吗?

另外,*** 新手,如果我在这方面做错了什么,请告诉我:)。

【问题讨论】:

可能无法解决问题,但您在extends 'base.html' 中缺少%,即它应该是% extends 'base.html' % 您的视图名为 get_search,而您的 URL 模式引用 search_view - 这可能是个问题。 search_view 是否可能不会在其上下文中传递 test 变量? 主代码 Abdul 中的内容是正确的,抱歉打错了,请帮忙!虽然问题确实是ski1p提到的,但我使用的是另一个视图,它也呈现了search.html,所以现在我觉得有点愚蠢......谢谢你们的帮助! 【参考方案1】:

问题是我渲染了一个不同的视图,它也使用了 search.html。因此,除了模板变量之外,为什么一切都是一样的。现在将上下文放入正确的视图中,search_view 可以正确呈现。

搜索视图

def search_view(request, *args, **kwargs):
    context = 
    context = "test":"abcde"
    return render(request, 'search.html', context)

【讨论】:

以上是关于Django模板变量不呈现的主要内容,如果未能解决你的问题,请参考以下文章

Django:避免在模板中呈现为变量

如何将 django 模板变量呈现为 html?

Django模板不为类别呈现

使用 ajax 时,Django 视图不呈现模板

在 Google App Engine 中将 docx 文件呈现为 django 模板

如何在不使用 js 或 html 的情况下摆脱 django 模板变量中的空间和 amp