2012-07-25 42 views
5

有沒有方法在Django中的表單字段標籤中加入換行符?放入\n只會導致HTML中出現換行符,而嘗試<br>只會顯示字符。有沒有可以在該字段中指定的等效|safe操作?Django表單字段標籤中的換行

回答

14

您可以使用mark_safe使得<br />標籤沒有逃脫。

它等同於使用模板中safe,所以如果你處理用戶輸入要小心。如果它是硬編碼的字符串,那麼使用它是安全的。

from django import forms 
from django.utils.safestring import mark_safe 

class MyForm(forms.Form): 
    my_field = forms.CharField(label=mark_safe('my label<br />next line')) 
+0

它是一個硬編碼的常數,謝謝! – 2012-07-25 16:20:32

+0

我認爲另一種方法是使用模板 – Anupam 2017-08-19 13:29:21

+0

@Anupam中的{{my_field.label | linebreaks}}這是一個很好的建議,您應該將其作爲單獨的答案添加。另一種選擇是'linebreaksbr'。 – Alasdair 2017-08-19 16:46:02

2

您也可以在模板中直接這樣做如下:

{{my_field.label|linebreaks}} 

\n將轉換爲<br/>這樣

按照該doc

單 換行變爲HTML換行符(<br />)和一個新行後接 一個空行成爲段落中斷(</p>)。