【发布时间】: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