[英]rendering of textfield and charfield chomps out extra whitespace (Django/Python)
我注意到我的模板正在渲染我的model.CharField和model.TextField而没有任何多余的空格。
例如,如果我输入数据,如...
This is a test
to see what happens.
渲染的对象字段将显示为......
This is a test to see what happens.
这是Django的故意特征还是我错过了某些过滤器或参数?
我用一些调试代码(print object.field)检查了字段本身,它确实包含额外的空格,所以问题出在渲染方面。
如何允许用户在TextFields中输入数据段落? 如何保留用户可能输入的空白?
正如您在StackOverflow中看到的那样,您的空间不会显示,这来自您的问题的来源:
This is a test
to see what happens.
将保存在数据库中:
This is a test\n\n\nto see what happens.
渲染为html时遇到问题:
除非在<pre></pre>
标记之间,否则浏览器会显示单词之间的额外空格
换行符将呈现为纯文本换行符,除非在<pre></pre>
标记之间,否则不会在浏览器中显示。
对于空格,您可以使用此类模板过滤器将其替换为与其等效的html实体:
。
要在HTML换行符中转换数据库换行符,请使用linebreaksbr内置过滤器。 例如,如果{{ foo }}
是: test\\nbar
,那么{{ foo|linebreaksbr }}
将呈现: test<br />bar
在某些应用中创建一个“templatetags”文件夹 ,其中包含__init__.py
文件。
例如,在someapp / templatetags / replace_tag.py中保存代码段
在模板中加载模板过滤器 {% load replace_tag %}
将replace和linebreaksbr结合起来 : {{ foo|linebreaksbr|replace:" "," " }}
{{ foo|linebreaksbr|replace:" "," " }}
您还可以创建自己的模板过滤器,将文本处理为您需要的HTML。 在任何情况下,请参阅自定义模板筛选器文档以获取完整信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.