2009-12-12 145 views

回答

61

linebreaks

替換換行符與適當的HTML純文本;一個換行符變爲HTML換行符(<br />),並且一個新行後跟一個空行成爲一個段落符號(</p>)。

例如:

{{ value|linebreaks }}

如果值是Joel\nis a slug,輸出將是<p>Joel<br />is a slug</p>.

+4

當一個鏈接回答,請也把它所在的情況下提供到您的文章的相關信息站點關閉在未來 – Mike 2011-09-13 18:12:13

+0

對於那些像我一樣找jinja2解決方案,下面的stackoverflow鏈接的答案。我有一個艱難的時間找到這個答案,所以把這裏的鏈​​接http://stackoverflow.com/questions/10436458/allowing-br-tags-with-google-app-engine-and-jinja2 – 2014-09-30 01:11:42

+0

有沒有辦法來保存除了呈現html之外的其他內容,例如電子郵件或輸入值,還是javascript? – TheJKFever 2017-03-16 22:05:11

-1

使用{% autoescape off %} {{ your_variable }} {% endautoescape %}

+0

你不應該這樣做,它會打開你一些潛在的安全問題。使用接受的答案。 – 2017-04-30 20:08:58

0

我有一個用戶在模板中的最小自定義輸入的文本區域,我想保留用戶插入的任何格式化文本保持不變。 解決方案,我只是將模型變量更改爲TextField類型。它甚至在管理員中顯示用戶格式化的文本。 :)

ex。

class Uadds(models.Model): 
    title  = models.CharField(max_length = 50) 
    description = models.TextField(max_length = 1000) 

標題不會顯示換行符,但是,說明會顯示它們。 我還沒有用富文本編輯器測試過這個... 希望這有幫助。

5

請勿使用{% autoescape off %}!否則用戶控制的輸入可能不會被轉義,這是一種安全風險。如提到使用linebreaks or linebreaksbr