Форум сайта python.su
Здравствуйте.
Вопрос
при вставке в текст управляющих символов например \r\n - итп с последующим сохранением этого текста в базе происходит следующие:
если строка записывалась с помощью формы т.е. например пользователь набирал текст в поле созданное
через forms.py:
message = forms.CharField (
widget = forms.Textarea (attrs = {'rows':'10', 'cols':'30', 'class':'forma',})
)
class F(models.Model):
message = models.TextField(max_length=1500)
def save(self):
self.message = '1\n\r2\n\r3\n\r4'
super(F,self).save()
def __unicode__(self):
return (
self.message,
)
Офлайн
если же через темплэйт производить вывод то в месте где должен быть перенос строки – находиться пробел.Темплейт html-ный?
Офлайн
да темплате нтмл
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><!-- Insert your title here --></title>
</head>
<body>
{{ mes }}
</body>
</html>
Офлайн
lorienДа действительно так правильно.
<pre>{{ foobar }}</pre>
или
{{ foobar|linebreaks }}
Отредактировано (Ноя. 10, 2008 22:33:12)
Офлайн
FerromanЭтот вопрос к тому что если не html-льный то разбирать лучше методом decode() ?если же через темплэйт производить вывод то в месте где должен быть перенос строки – находиться пробел.Темплейт html-ный?
Офлайн
Потому что в HTML \r\n не перенесет текст на следующую строку, для это нужен либо <p>, либо <br />.
Фильтр |linebreaks как раз обрамляет каждую строку тегом <p>
Офлайн
SvartalFЭто понятно что не переносят на новую строку.
Потому что в HTML \r\n не перенесет текст на следующую строку, для это нужен либо <p>, либо <br />.
Фильтр |linebreaks как раз обрамляет каждую строку тегом <p>
Офлайн
SvartalF
Да, для того и спрашивал :)
Сейчас уже понял что это не так но возможно это было бы удобно.Ну так напиши свой фильтр, делов-то ;)
Офлайн
lorienАга а еще linebreaksbr без вставки <p> только одни <br />
Эээ, зачем писать, он уже есть - linebreaks.
Офлайн
lorien
Ну, вот и замечательно.
Но так бы узнал больше… ;)
Офлайн