30

属性を持つモデルがあります、

desc = models.TextField()

Djangoが提供する管理インターフェースを使用してデータを入力し、後でデータベース値がフェッチされて表示されるテンプレートを表示しました。

管理インターフェースで改行を残しましたが(段落の間に空白行を残すだけで)、テンプレートでは単一の段落として表示されます。

私はDjango1.3とMySQLを使用しています。

4

4 に答える 4

66

linebreaks

プレーンテキストの改行を適切なHTMLに置き換えます。単一の改行はHTMLの改行(<br />)になり、新しい行の後に空白行が続くと段落の区切り(</p>)になります。

例えば:

{{ value|linebreaks }}

于 2012-04-22T18:44:01.850 に答える
5

ちなみに、改行が表示されないという同様の問題があり、TextFieldが読み取り専用として宣言されている場合、テキストはHTML段落タグでラップされていることに気付きました。

<p> text </p>

プレタグとは対照的に:

<pre> text </pre>

プレタグは新しい行スペースを保持するため、フィールドを読み取り専用にしないと、行スペースが表示されます。

于 2015-10-30T20:55:18.653 に答える
5

ジョン、あなたはイグナシオから素晴らしい答えを得たようです。混乱しているかもしれない人たちのためにイグナシオの答えを使うために私が取ったステップを指摘したかっただけです(私がそうであったように)。テキストフィールドを表示するテンプレート内で、テンプレートフィールド名(私の場合は「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 に答える
0

\nsqlを使用してモデルのTextField()に改行(ではない)を含むテキストを保存します。

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

Djangoテンプレートの場合:

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