2012-04-22 8 views
10

Ich habe ein Modell mit einem Attribute,Newline in models.TextField() nicht in Vorlage gemacht

desc = models.TextField() 

I-Daten unter Verwendung von Admin-Interface von Django bereitgestellt eingegeben und dann meine Vorlage später betrachtet, wo die Datenbankwerte abgerufen werden und angezeigt.

In meiner Admin-Schnittstelle habe ich Newline verlassen (nur durch Leerzeilen zwischen meinen Absätzen), aber sie werden als ein einziger Absatz in meiner Vorlage angezeigt.

Ich benutze Django 1.3 und MySQL.

Antwort

29

linebreaks

Ersetzt Zeilenumbrüche in Klartext mit den entsprechenden HTML; Ein einzelner Zeilenumbruch wird zu einem HTML-Zeilenumbruch (<br />) und eine neue Zeile gefolgt von einer Leerzeile wird zu einem Absatzumbruch (</p>).

Zum Beispiel:

{{ value|linebreaks }}

+0

Dies funktioniert für das Rendern, aber was, wenn Sie das '\ n' für Javascript, Eingabewerte oder E-Mails behalten möchten? – TheJKFever

+0

Hallo, ich suche auch gleich, ich habe ein Model mit Textfeld und auch entsprechende Admin-Klasse, ich habe keine Ahnung wo ich das setzen soll ??? Müssen wir den HTML-Code überschreiben und eine Vorlage dafür erstellen ??? –

0

einfach eine Anmerkung, war ich ein ähnliches Problem mit mit Zeilenumbrüchen nicht angezeigt und ich erkennen, dass, wenn ein TextField- als nur lesbar deklariert wird, wird der Text eingewickelt mit HTML-Absatz tags:

<p> text </p> 

als Tags vorzunehmen Gegensatz:

<pre> text </pre> 

Vor-Tags behalten neue Zeilenbereiche bei. Wenn Sie das Feld also NICHT schreibgeschützt machen, werden die Zeilenbereiche angezeigt.