问题描述
我正在使用 django 模板来呈现我的网页.在展开递归树的过程中发生了一些奇怪的事情(无空间标记无济于事).
这是我的递归模板:
index.html:
- <div class="展开">
我正在使用 django 模板来呈现我的网页.在展开递归树的过程中发生了一些奇怪的事情(无空间标记无济于事).
这是我的递归模板:
index.html:
- <div class="展开">
<div class="内容">Содержание
{% 包含 'list.html' 和 data=list %}
和 list.html(作为递归部分):
<li class="Node ExpandClosed"><div class="展开"></div><div class="内容"><a href="/help/{{data.name}}">{{数据内容}}</a>
{% 用于 data.decendent 中的项目 %}{% 包含 'list.html' with data=item %}{% 结束为 %}
结果如下:
使用 open("index.html", 'r').read() 作为 html 文件内容读取的文件的 html 内容被提取为文本,而不是 html:
而且我在元素之间有奇怪的空格:
如何避免这种奇怪的行为?谢谢!
解决方案 {% spaceless %}
仅删除标签之间的空白,而不是文本中的空白.它在文档中有描述:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#spaceless
如果您还想删除文本中的空格,您可以使用这样的自定义模板标签https://gist.github.com/martinsvoboda/1bf965a8c6037c0fe1a88d89ea822df6.用法:
{% nospaces %}<强>你好这是文字{% 没空间了 %}
渲染
<strong>你好,这是文本</strong>
I'm using django template to render my webpage. In the process of unrolling the recursive tree something strange happens (and spaceless tag doesn't help).
This is my recursive template:
index.html:
<ul class="Container">
<li class="IsRoot">
<div class="Expand">
</div>
<div class="Content">
Содержание
</div>
</li>
{% include 'list.html' with data=list %}
</ul>
and list.html (as a recursive part):
<ul class="Container">
<li class="Node ExpandClosed">
<div class="Expand"></div>
<div class="Content">
<a href="/help/{{data.name}}">
{{data.content}}
</a>
</div>
{% for item in data.decendent %}
{% include 'list.html' with data=item %}
{% endfor %}
</li>
</ul>
Here is the result:
The html content of file which had been read as a content of html-file using open("index.html", 'r').read() was extracted as a text, not html:
<div id="frame" style="float:left; margin-left:310px;">
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
</head>
<body>
Body Great Style
</body>
</html>
</div>
And also I have strange whitespaces between the elements:
How to avoid this strange behavior? Thank you!
解决方案 {% spaceless %}
removes only whitespace between tags, not in text. It is described in docs: https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#spaceless
If you want remove whitespaces also in text you can use custom template tag like this https://gist.github.com/martinsvoboda/1bf965a8c6037c0fe1a88d89ea822df6. Usage:
{% nospaces %}
<strong>
Hello
this is text
</strong>
{% nospaces %}
Renders
<strong>Hello this is text</strong>
这篇关于如何避免 django 模板中出现奇怪的空格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-28 04:27