Django将包含HTML的模板变量呈现为纯文本,但源代码具有样式
我对Django 2.0.4有一个奇怪的问题(这可能并不奇怪,因为我是新手) 我有一个从视图中呈现的模板,传入的数据是一个包含HTML的字符串 “我的视图”按如下方式呈现模板:Django将包含HTML的模板变量呈现为纯文本,但源代码具有样式,html,django,django-templates,django-views,Html,Django,Django Templates,Django Views,我对Django 2.0.4有一个奇怪的问题(这可能并不奇怪,因为我是新手) 我有一个从视图中呈现的模板,传入的数据是一个包含HTML的字符串 “我的视图”按如下方式呈现模板: return render(request, 'template.html', { 'data' : data }) data.content包含上面的HTML 在我的模板中,我将其呈现为: template.html(什么有效): 这就很好了。但是,当我将此模板包括其他模板时,HTML将停止正确呈现 template
return render(request, 'template.html', { 'data' : data })
data.content包含上面的HTML
在我的模板中,我将其呈现为:
template.html(什么有效):
这就很好了。但是,当我将此模板包括其他模板时,HTML将停止正确呈现
template.html(我想要的):
上面显示的header.html和footer.html很好,但是中间的data.content | safe部分实际上变成了没有样式的文本。如果我查看源代码,它是正确的HTML(真正的标记、类等,不&l;有趣的业务),但浏览器不会对其应用渲染。它只是以纯文本结尾,例如,单词周围的强标记不会使其加粗,列表只是换行符,等等。即使顶部和底部模板中的HTML与可显示的HTML一起正确包含
最奇怪的是,从该变量正确呈现的唯一HTML是hrefs。没有别的了。我认为这是疯狂的,没有其他标签的作品。也没有CSS干扰HTML
我也尝试过使用{%autoescape off%}。。。{%endautoescape%}具有相同的结果
显然,我在这里的意图是让我的视图显示一个由多个模板组成的HTML页面,其中的值分布在这些模板之间。但是我甚至不能正确显示这个变量,更不用说其他变量了
非常感谢你的帮助
编辑:
header.html:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<meta name="Description" content="" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700|Open+Sans:300,400,400i,600,700|Roboto:300,400,400i,700|Arvo:400,400i,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{% static "org/css/foundation.min.css" %}"/>
<link rel="stylesheet" type="text/css" href="{% static "org/css/styles.css" %}"/>
</head>
<body>
{%load static%}
试验
template.html:
{{data.content | safe}}
“data.content”是字符串“test
”
footer.html:
</body>
</html>
生成的视图源:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<meta name="Description" content="" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700|Open+Sans:300,400,400i,600,700|Roboto:300,400,400i,700|Arvo:400,400i,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/org/css/foundation.min.css" />
<link rel="stylesheet" type="text/css" href="/org/css/styles.css" />
</head>
<body>
<strong>test</strong>
</body>
</html>
试验
测试
结果显示的HTML页面只是“测试”,没有强样式。页眉/页脚中有什么?你确定页眉中没有一个未关闭的标记会破坏后面的所有内容吗?header.html和footer.html不包含任何格式错误的html。正如我所说,footer.html呈现得非常完美,如果header.html格式不正确,我认为情况就不会如此。这里没有足够的信息来帮助您-问题很可能与您正在呈现的内容有关,而不是广泛的模板结构,它应该可以正常工作。在发布
header.html
,footer.html
,以及生成的html源代码。
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<meta name="Description" content="" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700|Open+Sans:300,400,400i,600,700|Roboto:300,400,400i,700|Arvo:400,400i,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/org/css/foundation.min.css" />
<link rel="stylesheet" type="text/css" href="/org/css/styles.css" />
</head>
<body>
<strong>test</strong>
</body>
</html>