【发布时间】:2012-05-03 11:52:32
【问题描述】:
我有一个带有属性的模型,
desc = models.TextField()
我使用 Django 提供的管理界面输入数据,然后查看了我的模板,其中获取并显示了数据库值。
在我的管理界面中,我留下了换行符(只是在我的段落之间留下空白行),但它们在我的模板中显示为单个段落。
我正在使用 Django 1.3 和 MySQL。
【问题讨论】:
我有一个带有属性的模型,
desc = models.TextField()
我使用 Django 提供的管理界面输入数据,然后查看了我的模板,其中获取并显示了数据库值。
在我的管理界面中,我留下了换行符(只是在我的段落之间留下空白行),但它们在我的模板中显示为单个段落。
我正在使用 Django 1.3 和 MySQL。
【问题讨论】:
用适当的 HTML 替换纯文本中的换行符;单个换行符成为 HTML 换行符 (
<br />),新行后跟一个空行成为段落换行符 (</p>)。例如:
{{ value|linebreaks }}
【讨论】:
\n 怎么办?
请注意,我遇到了类似的问题,换行符没有显示,我意识到当 TextField 被声明为只读时,文本会被 HTML 段落标签包裹:
<p> text </p>
相对于前置标签:
<pre> text </pre>
Pre 标记保留新的行空间,因此如果您不将该字段设为只读,您将看到这些行空间。
【讨论】:
约翰,看起来你从伊格纳西奥那里得到了很好的回答。我只是想指出我为那些可能感到困惑的人(就像我一样)使用伊格纳西奥的答案所采取的步骤。在我显示文本字段的模板中,我在模板字段名称后面添加了“|linebreaks”(在我的例子中是“job.desc”):
<ul>
{% for job in varDataObject %}
<li>
<h4>
<a href="#" onclick='funPath("Job", {{ job.id }})'>{{ job.title }} </a>
</h4>
Description: {{ job.desc|linebreaks }}
【讨论】:
使用 sql 在模型的 TextField() 中使用换行符(不是 \n)保存文本:
update event
set description='xyz
asdasd
oaisjd '
where id=1;
在 Django 模板中:
{{ object.description|linebreaks }}
【讨论】: