30

我有一个带有属性的模型,

desc = models.TextField()

我使用 Django 提供的管理界面输入数据,然后查看了我的模板,其中获取并显示了数据库值。

在我的管理界面中,我留下了换行符(只是在我的段落之间留下空白行),但它们在我的模板中显示为单个段落。

我正在使用 Django 1.3 和 MySQL。

4

4 回答 4

66

linebreaks

用适当的 HTML 替换纯文本中的换行符;单个换行符成为 HTML 换行符 ( <br />),而后跟一个空行的新行成为段落换行符 ( </p>)。

例如:

{{ value|linebreaks }}

于 2012-04-22T18:44:01.850 回答
5

约翰,看起来你从伊格纳西奥那里得到了很好的回答。我只是想指出我为那些可能感到困惑的人(就像我一样)使用伊格纳西奥的答案所采取的步骤。在我显示文本字段的模板中,我在模板字段名称后面添加了“ |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 }}
于 2018-05-31T17:52:05.303 回答
5

请注意,我遇到了类似的问题,换行符没有出现,我意识到当 TextField 被声明为只读时,文本会被 HTML 段落标签包裹:

<p> text </p>

与 pre 标签相反:

<pre> text </pre>

Pre 标记保留新的行空间,因此如果您不将该字段设为只读,您将看到这些行空间。

于 2015-10-30T20:55:18.653 回答
0

\n使用 sql 在模型的 TextField() 中使用换行符(不是)保存文本:

update event
set description='xyz
                asdasd
                 oaisjd '
where id=1;

在 Django 模板中:

{{ object.description|linebreaks }}
于 2021-12-14T03:47:45.783 回答