【问题标题】:Django Template Not Displaying Variables CorrecltyDjango 模板未正确显示变量
【发布时间】:2020-01-02 15:22:46
【问题描述】:

我有一个 django 页面,该页面正在进行 API 调用,然后通过模板显示结果。这一直运作良好,但我必须改变一些东西,现在一半的变量没有正确显示。通常,当调用变量时出现错误,模板只会显示一个空白字段。但是,在我的情况下,网页显示的是调用变量的代码。这是我所拥有的:

我的 HTML 代码如下所示:

<h6>Page</h6>
       <ul class="list-inline mx-auto row">
         <li class="list-group-item col-md-12">ASN: {{ context.upload.urlscan.page.asn }}</li>
       </ul>

       <ul class="list-inline mx-auto row">
         <li class="list-group-item col-md-12">ASN Name: {{ context.upload.urlscan.page.asnname }}</li>
       </ul>

       <ul class="list-inline mx-auto row">
         <li class="list-group-item col-md-12">IP: {{ context.upload.urlscan.page.ip }}</li>
       </ul>  

从此代码中,只有第一行和第三行正确显示 - 这些行显示分配给它们的变量。

标有“ASN 名称”的中间值正在显示代码。在网页上是这样的:

{{ context.upload.urlscan.page.asnname }}

我已验证数据输入正确,并且这发生在我的代码中的多个位置。不知道为什么有些变量有效而有些则无效。

我在 RHEL 7.x 上使用 Django 2.1 和 Python 3.6

编辑 根据请求,这里是我的上下文创建和渲染部分

    context['type'] = 'url'
    context['upload']['cs_response'] = cs_response
    context['upload']['cs_domain'] = cs_resp_dom
    context['upload']['ppdom_rep'] = ppdom_rep
    context['upload']['ppdom_ids'] = ppdom_ids
    context['upload']['cs_test'] = ioc
    context['upload']['urlscan'] = scan_res
    context['js'] = json.dumps(context, indent=4)

return render(request, 'iocs/upload.html', {'context': context})

【问题讨论】:

  • 您的模板{{ 或}} 中是否缺少任何打开的 和/或 括号?虽然在这种情况下你应该得到一个错误。
  • @PedramParsian 这是我的第一个想法,也是我选择这段代码发布的原因。我觉得如果我缺少一个括号,那么没有一个应该起作用,但是在这一部分中,第一和第三个工作
  • 我能想到的唯一解释(根据您显示的内容)是 scan_res.page.asnname 值实际上是 literal 字符串 "{{ context.upload.urlscan.page.asnname }}"
  • 不是。我已验证数据是否正确传递给模板:(

标签: python django python-3.x django-templates


【解决方案1】:

所以这很痛苦,但我终于想通了。我想为div 设置样式,但我以一种懒惰的方式做到了。我的 django 模板是从一个“基本”模板扩展而来的,所以在 {% block content %} 标签下我添加了一个 &lt;style&gt; 标签。

这可以正常工作并正确设置 div 的样式,但是由于某种原因,它破坏了页面上的一半变量。我不知道为什么!调试时,我将整个 &lt;style&gt; 块注释掉了,我的代码仍然被破坏。我必须完全删除 &lt;style&gt; 块才能让它再次工作。

一旦&lt;style&gt; 块被删除,所有变量都开始工作...

【讨论】:

    猜你喜欢
    • 2020-12-02
    • 1970-01-01
    • 2014-07-04
    • 2011-05-17
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2021-03-07
    • 2020-06-04
    相关资源
    最近更新 更多