2012-04-22 3 views
10

Ho un modello con un attributo,nuova riga in models.TextField() non resa in modello

desc = models.TextField() 

I dati inseriti tramite l'interfaccia di amministrazione fornito da Django e poi visto il mio modello in cui i valori del database vengono recuperati e visualizzato.

Nella mia interfaccia di amministrazione ho lasciato newline (solo lasciando le righe vuote tra i miei paragrafi) ma sono visualizzati come un singolo paragrafo nel mio modello.

Sto utilizzando Django 1.3 e MySQL.

risposta

29

linebreaks

Sostituisce interruzioni di riga nel testo con adeguata HTML; una singola riga nuova diventa un'interruzione di riga HTML (<br />) e una nuova riga seguita da una riga vuota diventa un'interruzione di paragrafo (</p>).

Ad esempio:

{{ value|linebreaks }}

+0

Questo funziona per il rendering, ma cosa succede se si desidera mantenere il '\ n' per javascript, valori di input o e-mail? – TheJKFever

+0

Ciao, sto anche cercando lo stesso, ho un modello con campo di testo e anche la corrispondente classe di amministrazione, non ho idea di dove mettere questo ??? abbiamo bisogno di sovrascrivere il codice HTML e creare un modello per esso ??? –

0

Solo una nota, ho avuto un problema simile con a capo non presentandosi e mi sono reso conto che quando un TextField è dichiarato come sola lettura, il testo è avvolto con HTML tag di paragrafo:

<p> text </p> 

al contrario di pre tags:

<pre> text </pre> 

I prefetti conservano nuovi spazi di riga, quindi se NON si effettua il campo in sola lettura, verranno visualizzati gli spazi delle linee.