2012-04-22 24 views
10

tengo un modelo con un atributo,nueva línea en models.TextField() no se representa en la plantilla

desc = models.TextField() 

entré datos utilizando la interfaz de administración proporcionada por Django y, posteriormente, se ve mi plantilla donde los valores de base de datos se recuperan y se muestra.

En mi interfaz de administración dejé la línea nueva (simplemente dejando líneas en blanco entre mis párrafos) pero se muestran como un solo párrafo en mi plantilla.

Estoy usando Django 1.3 y MySQL.

Respuesta

29

linebreaks

Sustituye saltos de línea en texto plano con HTML correspondiente; una nueva línea se convierte en un salto de línea HTML (<br />) y una nueva línea seguida de una línea en blanco se convierte en un salto de párrafo (</p>).

Por ejemplo:

{{ value|linebreaks }}

+0

Esto funciona para la representación, pero ¿qué ocurre si desea mantener el '\ n' para javascript, valores de entrada o correos electrónicos? – TheJKFever

+0

Hola, también estoy buscando lo mismo, tengo un modelo con campo de texto y la clase de administración correspondiente, no tengo ni idea de dónde poner esto ??? ¿Necesitamos sobrescribir el html y crear una plantilla para él? –

0

Sólo una nota, yo estaba teniendo un problema similar con saltos de línea que no aparecen y me di cuenta que cuando un campo de texto se declara como de sólo lectura, el texto se envuelve con etiquetas de párrafo HTML:

<p> text </p> 

en lugar de comprobar la validez tags:

<pre> text </pre> 

Las etiquetas previas conservan los espacios de línea nuevos, por lo que si NO hace que el campo sea de solo lectura, verá los espacios de líneas.

Cuestiones relacionadas