2012-07-25 26 views
5

Django'da bir form alanının etiketine yeni satır koymak mümkün mü? Bir \n koymak sadece HTML'de bir satırsonuyla sonuçlanır ve <br>'u sadece karakterleri olduğu gibi görüntüler. Sahada belirleyebileceğim eşdeğer |safe işlem var mı?Django form alanı için etiket satırında Newline

cevap

14

mark_safe'u kullanarak <br /> etiketi kullanılmaz.

Şablonda safe'u kullanmakla eşdeğerdir, bu nedenle kullanıcı girişini kullanırken dikkatli olun. Sabit kodlu bir dizeyse, kullanmak güvenlidir. aşağıdaki gibi

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

Sabit kodlanmış bir sabit için teşekkürler! –

+0

Bence alternatif bir çözüm önerisi olan – Anupam

+0

@Anupam şablonunda {{my_field.label | linebreaks}} kullanmak bir çözümdür. Başka bir seçenek de 'linebreaksbr' dir. – Alasdair

2

Ayrıca şablonda doğrudan yapabilirsiniz:

{{my_field.label|linebreaks}} 

\n<br/> dönüşeceği doc gereğince yolu

,

tek newline bir HTML satır sonu oldu (<br />) ve izleyen yeni bir satır boş bir satır paragraf sonu (</p>) olur.