Problema con saltos de línea

1,320 views
Skip to first unread message

Francisco Javier Cuadrado

unread,
Jan 18, 2010, 5:57:15 AM1/18/10
to Lista DJANGO-ES
Hola.

Tengo un problema al guardar texto con saltos de línea que proviene de
un formulario. Básicamente consiste en lo siguiente:

Un formulario como el siguiente:

class MyForm (forms.Form):
texto = forms.CharField (widget=forms.Textarea)

Los datos del formulario se guardarían en un modelo como el siguiente:

class MyModel (models.Model):
texto = models.TextField ()

Hasta aquí todo bien, supongo.

El problema es que cuando después de guardar el texto con saltos de
línea proveniente del formulario, lo muestro en una página, este texto
aparece sin los saltos del línea.

¿Alguna idea?


--
Saludos

Fran

Gonzalo Delgado

unread,
Jan 18, 2010, 6:47:20 AM1/18/10
to djan...@googlegroups.com
El 18/01/10 07:57, Francisco Javier Cuadrado escribi�:
> Tengo un problema al guardar texto con saltos de l�nea que proviene de
> un formulario. B�sicamente consiste en lo siguiente:

>
> Un formulario como el siguiente:
>
> class MyForm (forms.Form):
> texto = forms.CharField (widget=forms.Textarea)
>
> Los datos del formulario se guardar�an en un modelo como el siguiente:

>
> class MyModel (models.Model):
> texto = models.TextField ()
>
> Hasta aqu� todo bien, supongo.
>
> El problema es que cuando despu�s de guardar el texto con saltos de
> l�nea proveniente del formulario, lo muestro en una p�gina, este texto
> aparece sin los saltos del l�nea.
>

Si con "saltos de l�nea" est�s hablando del tag HTML <br> (si se guarda
as� desde el formulario) entonces cuando muestres los datos del
formulario, deber�s usar el filtro "safe"[0]. De otra forma, Django
quitar� dichos tags de los datos obtenidos desde la base de datos.


[0] http://docs.djangoproject.com/en/1.1/ref/templates/builtins/#safe

--
Gonzalo Delgado <gonza...@gmail.com>

Francisco Javier Cuadrado

unread,
Jan 18, 2010, 6:52:11 AM1/18/10
to djan...@googlegroups.com
El día 18 de enero de 2010 12:47, Gonzalo Delgado
<gonza...@gmail.com> escribió:
> El 18/01/10 07:57, Francisco Javier Cuadrado escribió:
>> Tengo un problema al guardar texto con saltos de línea que proviene de
>> un formulario. Básicamente consiste en lo siguiente:

>>
>> Un formulario como el siguiente:
>>
>> class MyForm (forms.Form):
>>     texto = forms.CharField (widget=forms.Textarea)
>>
>> Los datos del formulario se guardarían en un modelo como el siguiente:

>>
>> class MyModel (models.Model):
>>     texto = models.TextField ()
>>
>> Hasta aquí todo bien, supongo.
>>
>> El problema es que cuando después de guardar el texto con saltos de
>> línea proveniente del formulario, lo muestro en una página, este texto
>> aparece sin los saltos del línea.
>>
>
> Si con "saltos de línea" estás hablando del tag HTML <br> (si se guarda
> así desde el formulario) entonces cuando muestres los datos del
> formulario, deberás usar el filtro "safe"[0]. De otra forma, Django
> quitará dichos tags de los datos obtenidos desde la base de datos.
>

A ver si me explico, me refiero a un salto de línea normal y corriente
dentro de un formulario, es decir un '\n', y que luego, django al
mostrarlo en la plantilla genere su elemento HTML (<br>)
correspondiente, pero que en la base de datos se guarde mi salto de
línea.

> --
> Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
>  Si quieres publicar en este grupo, envía un mensaje de correo
> electrónico a djan...@googlegroups.com
>  Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
>  Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
>

--
Saludos

Fran

Gonzalo Delgado

unread,
Jan 18, 2010, 7:00:40 AM1/18/10
to djan...@googlegroups.com
El 18/01/10 08:52, Francisco Javier Cuadrado escribi�:
> A ver si me explico, me refiero a un salto de l�nea normal y corriente

> dentro de un formulario, es decir un '\n', y que luego, django al
> mostrarlo en la plantilla genere su elemento HTML (<br>)
> correspondiente, pero que en la base de datos se guarde mi salto de
> l�nea.
>
Pues para eso tambi�n existen filtros adecuados.
No dejes de tener a mano la referencia de filtros[0] del sistema de
templates de Django, la vas a necesitar casi todo el tiempo ;)

�Saludos!


[0]
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#built-in-filter-reference

--
Gonzalo Delgado <gonza...@gmail.com>

Andrés gutiérrez

unread,
Jan 18, 2010, 7:02:04 AM1/18/10
to djan...@googlegroups.com
Usa este [1] linebreaksbr
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#linebreaksbr

El 18 de enero de 2010 13:00, Gonzalo Delgado <gonza...@gmail.com> escribió:
El 18/01/10 08:52, Francisco Javier Cuadrado escribió:
> A ver si me explico, me refiero a un salto de línea normal y corriente

> dentro de un formulario, es decir un '\n', y que luego, django al
> mostrarlo en la plantilla genere su elemento HTML (<br>)
> correspondiente, pero que en la base de datos se guarde mi salto de
> línea.
>
Pues para eso también existen filtros adecuados.

No dejes de tener a mano la referencia de filtros[0] del sistema de
templates de Django, la vas a necesitar casi todo el tiempo ;)

¡Saludos!


[0]
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#built-in-filter-reference

--
Gonzalo Delgado <gonza...@gmail.com>


--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
 Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
 Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.



--
Experiencia es lo que obtienes, cuando no obtienes lo que quieres.
-----------------------------------------------------------------------------
"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático.

Miguel

unread,
Jan 18, 2010, 6:24:38 PM1/18/10
to djan...@googlegroups.com

Yo en mis plantillas uso la siguinte linea

{{ form.as_p }}

y ya con eso automaticamente hace los saltos correspondineste (version 1.2 Beta)
--
ISC. JMSM

Francisco Javier Cuadrado

unread,
Jan 19, 2010, 2:18:10 AM1/19/10
to djan...@googlegroups.com
Gracias a todos, el filtro linebreaksbr es justamente lo que buscaba,
se me olvidó buscar entre los filtros. :S

Pero eso es para mostrar el formulario, yo no me refiero a eso.

> --
> ISC. JMSM


>
> --
> Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del
> Framework Django de habla hispana" de Grupos de Google.
>  Si quieres publicar en este grupo, envía un mensaje de correo
> electrónico a djan...@googlegroups.com
>  Para anular la suscripción a este grupo, envíe un mensaje a
> django-es-...@googlegroups.com
>  Para obtener más opciones, visita este grupo en
> http://groups.google.com.bo/group/django-es.
>

--
Saludos

Fran

Andrés gutiérrez

unread,
Jan 19, 2010, 3:37:30 AM1/19/10
to djan...@googlegroups.com
Si una cosa tiene Django, es la doc bien definida :)

Un saludo
Reply all
Reply to author
Forward
0 new messages