我有一个带有属性的模型,
desc = models.TextField()
我使用 Django 提供的管理界面输入数据,然后查看了我的模板,其中获取并显示了数据库值。
在我的管理界面中,我留下了换行符(只是在我的段落之间留下空白行),但它们在我的模板中显示为单个段落。
我正在使用 Django 1.3 和 MySQL。
用适当的 HTML 替换纯文本中的换行符;单个换行符成为 HTML 换行符 (
<br />
),而后跟一个空行的新行成为段落换行符 (</p>
)。例如:
{{ value|linebreaks }}
约翰,看起来你从伊格纳西奥那里得到了很好的回答。我只是想指出我为那些可能感到困惑的人(就像我一样)使用伊格纳西奥的答案所采取的步骤。在我显示文本字段的模板中,我在模板字段名称后面添加了“ |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 }}
请注意,我遇到了类似的问题,换行符没有出现,我意识到当 TextField 被声明为只读时,文本会被 HTML 段落标签包裹:
<p> text </p>
与 pre 标签相反:
<pre> text </pre>
Pre 标记保留新的行空间,因此如果您不将该字段设为只读,您将看到这些行空间。
\n
使用 sql 在模型的 TextField() 中使用换行符(不是)保存文本:
update event
set description='xyz
asdasd
oaisjd '
where id=1;
在 Django 模板中:
{{ object.description|linebreaks }}