2012-07-25 87 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

ありがとうございました! –

+0

テンプレートの – Anupam

+0

@Anupamに{{my_field.label | linebreaks}}を使用することをお勧めします。それは別の回答として追加する必要があります。もう一つのオプションは 'linebreaksbr'です。 – Alasdair

2

次のようにあなたはまた、テンプレートで直接この操作を行うことができます。

{{my_field.label|linebreaks}} 

\ndoc 1として、そのよう

<br/>に変換されます、

シングル 改行がHTML改行になります(<br />)、新しい行には が続き、空行は段落区切り(</p>)になります。

関連する問題